آموزش توابع بی نام  در پایتون ( Anonymous functions)

پایتون آریا پروژه

آموزش توابع بی نام در پایتون ( Anonymous functions)

توابع بی نام یا همان توابع لامبدا در پایتون، توابعی هستند که بدون نام هستند و به صورت مستقیم در محل استفاده از آن‌ها تعریف می‌شوند. این توابع به شما این امکان را می‌دهند که یک تابع کوچک و ساده را به صورت خلاصه و کوتاه تعریف کنید.

توابع بی نام معمولا برای استفاده‌های کوتاه مانند تابع‌های مرتب‌سازی، فیلترینگ داده‌ها و یا تبدیل داده‌ها به کار می‌روند. این توابع به شما اجازه می‌دهند که کد خود را به صورت محکم‌تر و خواناتر نوشته و از تکرار کدهای زیاد جلوگیری کنید.

توابع بی نام در پایتون با استفاده از دستور lambda تعریف می‌شوند. سینتکس lambda به شما این امکان را می‌دهد که یک تابع کوتاه با ورودی‌های مشخص و یک خروجی را تعریف کنید، بدون نیاز به نام گذاری آن. به عبارت دیگر، با استفاده از lambda، می‌توانید یک تابع کوچک و ساده را به صورت خلاصه و مستقیم تعریف کنید.

آرگومان پیش فرض آرگومانی است که در صورت مشخص نکردن مقداری در فراخوانی تابع برای آن، به صورت خودکار مقدار پیش فرض می پذیرد.

مقاله پیشنهادی :فرمت استرینگ و کانکتینیت استرینگ fomat string concatenate string

نمونه ی زیر نشان می دهد که مقداری برای آرگومان (age در فراخوانی تابع) تعریف نشده.

با این وجود تابع دوم مقدار ۵۰ را برای آن چاپ می کند:

#!/usr/bin/python

# Function definition is here

def printinfo( name, age = 35 ):

 “This prints a passed info into this function”

 print “Name: “, name

 print “Age “, age

 return;

# Now you can call printinfo function

printinfo( age=50, name=”miki” )

printinfo( name=”miki” )

نتیجه:

Name: miki

Age 50

Name: miki

Age 35

آرگومان های با طول متغیر در پایتون (Variable -length arguments)

گاهی لازم است یک تابع را با آرگومان های بیشتری نسبت به آنچه در زمان تعریف تابع مشخص کردید، پردازش و فراخوانی کنید.

این دست از آرگومان ها در اصطلاح آرگومان های با طول متغیر (variable length )خوانده می شوند.

برخلاف آرگومان های الزامی و پیش فرض، در تعریف تابع ذکر نمی شوند.

نحوه ی نگارش:

def functionname([formal_args,] *var_args_tuple ):

 “function_docstring”

 function_suite

 return [expression]

علامت (*) پیش از اسم متغیر (vartuple )که دارنده ی آرگومان های متغیر nonkeyword است درج می شود.

لازم به ذکر است که این tuple ،چنانچه به هنگام فراخوانی تابع (function call )هیچ آرگومان اضافی مشخص نشود، تهی باقی می ماند.

مثال:

#!/usr/bin/python

# Function definition is here

def printinfo( arg1, *vartuple ):

 “This prints a variable passed arguments”

 print “Output is: “

 print arg1

 for var in vartuple:

 print var

 return;

# Now you can call printinfo function

printinfo( 10 )

printinfo( 70, 60, 50 )

کد فوق نتیجه ی زیر را بدست می دهد:

Output is:

۱۰

Output is:

۷۰

۶۰

۵۰

دوره رایگان پایتون از صفر تا صد 

توابع بی نام  در پایتون ( Anonymous functions)

توابعی که به شیوه ی معمول و با درج کلیدواژه ی def تعریف نشده اند، توابع anonymous نام دارند.

برای ایجاد توابع anonymous ،بایستی از کلیدواژه ی lambda استفاده نمود.

.۱ توابعی که به شکل lambda تعریف شده اند، قادراند چندین آرگومان به عنوان ورودی بپذیرند.

اما فقط یک مقدار را در قالب عبارت به عنوان خروجی برمی گرداند.

همچنین نمی توانند چندین دستور یا عبارت درخود داشته باشند.

یک تابع anonymous نمی تواند به صورت مستقیم برای چاپ (print )فراخوانی شود، زیرا lambda به یک عبارت نیاز دارد.

توابع lambda دارای فضای نامی محلی ( local namespace )خود هستند  نمی توانند به متغیرهایی که در لیست پارامتر خود آورده نشده و نیز متغیرهایی که در فضای نامی سراسری هستند، دسترسی داشته باشند.

.۴ اگرچه بنظر می رسد که lambda ها، نسخه ی تک خطی از یک تابع هستند.

با این وجود معادل دستورات درون برنامه ای ( in- line statement)در زبان های C و ++C محسوب نمی شوند.

که هدف از آن افزایش کارایی تابع به وسیله ی ارسال پشته ی تخصیص تابع هنگام فراخوانی است.

ساختار نگارشی در پایتون

سینتکس توابع lambda همان طور که در نمونه ی زیر مشاهده می کنید، شامل تنها یک خط می باشد:

lambda [arg1 [,arg2,…..argn]]:expression

در زیر نحوه ی عملکرد تابعی که به صورت lambda تعریف شده باشد، را مشاهده می کنید:

#!/usr/bin/python

# Function definition is here

sum = lambda arg1, arg2: arg1 + arg2;

# Now you can call sum as a function

print “Value of total : “, sum( 10, 20 )

print “Value of total : “, sum( 20, 20 )

نتیجه:

Value of total : 30

Value of total : 40

چگونه پروژه پایتون را در آریا پروژه ثبت کنیم:

شما عزیزان میتوانید پروژه پایتون خود را در پیام رسان های ایتا ، روبیکا ، واتساپ و تلگرام ارسال کرده تا به سرعت پروژه پیگیری شود.

آیدی تلگرام : mnik60@

آیدی ایتا : @ mnik60

آیدی روبیکا: Aryaprozhe@

شماره واتساپ:۰۹۱۲۵۰۱۳۰۹۴

میتونی با یک کلیک پروژه خودتو ثبت کنی!

سفارش پروژه در تلگرام

سفارش پروژه در واتساپ

سفارش پروژه در ایتا

سفارش پروژه در روبیکا

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *