آموزش آرگومانهای تابع در پایتون
ما میتوانیم اطلاعات را با استفاده از آرگومانها در داخل تابعها، وارد کنیم(پاس دهیم). آرگومانها، (به هنگام صدا زدن نام تابع) پس از نام تابع و در بین پرانتزهای آن مشخص میشوند. ما میتوانیم هر تعداد آرگومان که بخواهیم برای تابع اضافه کنیم، فقط کافیست آنها را با استفاده از علامت کاما، از یکدیگر جدا کنیم. در مثال زیر، یک تابع به همراه یک آرگومان (fname) ایجاد کرده ایم. هنگامی که این تابع صدا زده میشود، یک نام را به آن پاس میدهیم؛ که از آن در درون تابع، برای پرینت کردن نام کامل استفاده میکنیم:
مثال شماره 1
یک تابع با یک آرگومان:
def my_function(fname):
print(fname + " Refsnes")
my_function("Emil")
my_function("Tobias")
my_function("Linus")
نتیجه:
Emil Refsnes
Tobias Refsnes
Linus Refsnes
امتحان کنیددرک تفاوت آرگومان با پارامتر
پارامتر و آرگومان هردو برای انجام یک کار مورد استفاده قرار میگیرند: برای پاس دادن یا وارد کردن اطلاعات به یک تابع. آرگومان و پارامتر از دیدگاه یک تابع به صورت زیر در نظر گرفته میشوند:
- یک پارامتر، به متغیری گفته میشود که در بین پرانتزهای تعریف یک تابع قرار میگیرد.
- یک آرگومان، یک مقدار واقعی است که وقتی نام تابعی را صدا میزنیم، در بین پرانتز قرار میگیرد و به آن تابع ارسال میشود.
مثال شماره 2
def my_function(name): # یک پارامتر است name در اینجا
print("Hello", name)
my_function("Emil") # یک آرگومان است "Emil" در اینجا
تعداد آرگومان ها
به طور پیشفرض، وقتی میخواهیم نام یک تابع را صدا بزنیم تا اجرا شود، باید به تعداد لازم، به آن آرگومان بدهیم. اگر تابع شما 2 آرگومان قبول میکند، باید وقتی که میخواهیم آن را صدا بزنیم، دقیقاً 2 آرگومان به آن اختصاص دهیم.
مثال شماره 3
این تابع منتظر دو آرگومان است و ما به آن، دو آرگومان اختصاص میدهیم:
def my_function(fname, lname):
print(fname + " " + lname)
my_function("Emil", "Refsnes")
نتیجه:
Emil Refsnes
امتحان کنیداگر سعی کنیم یک تابع را صدا بزنیم ولی تعداد آرگومانهای درستی به آن ندهیم، با یک خطا مواجه خواهیم شد:
مثال شماره 4
باید به این تابع، دو آرگومان اختصاص دهیم اما تنها یک آرگومان برای آن در نظر گرفتهایم:
def my_function(fname, lname):
print(fname + " " + lname)
my_function("Emil")
نتیجه:
Traceback (most recent call last):
File "demo_function_arg_error.py", line 4, in <module>
my_function("Emil")
TypeError: my_function() missing 1 required positional argument: 'lname'
امتحان کنیدمقادیر پیشفرض برای پارامترهای تابع
ما میتوانیم برای پارامترهای یک تابع، مقادیر پیشفرضی را مشخص کنیم. تا اگر این تابع، بدون اختصاص آرگومان، صدا زده شود، از این مقادیر پیشفرض استفاده کند:
مثال شماره 5
def my_function(name = "friend"):
print("Hello", name)
my_function("Emil")
my_function("Tobias")
my_function()
my_function("Linus")
نتیجه:
Hello Emil
Hello Tobias
Hello friend
Hello Linus
امتحان کنیدمثال شماره 6
استفاده از مقدار پیش فرض برای پارامتر country:
def my_function(country = "Norway"):
print("I am from", country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")
نتیجه:
I am from Sweden
I am from India
I am from Norway
I am from Brazil
امتحان کنیداختصاص آرگومانها به صورت کلمهی کلیدی(Keyword Arguments)
ما میتوانیم آرگومانها را به صورت key = value ارسال کنیم.
مثال شماره 7
def my_function(animal, name):
print("I have a", animal)
print("My", animal + "'s name is", name)
my_function(animal = "dog", name = "Buddy")
نتیجه:
I have a dog
My dog's name is Buddy
امتحان کنیددر این روش، دیگر ترتیب قرارگیری آرگومانها اهمیتی ندارد.
مثال شماره 8
def my_function(animal, name):
print("I have a", animal)
print("My", animal + "'s name is", name)
my_function(name = "Buddy", animal = "dog")
نتیجه:
I have a dog
My dog's name is Buddy
امتحان کنیدنکته: در مستندات پایتون، برای مخفف عبارت Keyword Arguments از کلمهی خلاصه شدهی kwargs استفاده میشود.
استفاده از آرگومانهای موقعیتدار در پایتون
وقتی که یک تابع را با آرگومانهایش، بدون استفاده از کلمههای کلیدی(keywords) صدا بزنیم، به آنها آرگومانهای موقعیتدار گفته میشود. آرگومانهای موقعیتدار، باید به ترتیب صحیحی قرار گیرند.
مثال شماره 9
def my_function(animal, name):
print("I have a", animal)
print("My", animal + "'s name is", name)
my_function("dog", "Buddy")
نتیجه:
I have a dog
My dog's name is Buddy
امتحان کنیدترتیب در آرگومانهای موقعیتی اهمیت دارد:
مثال شماره 10
جا به جا کردن ترتیبِ آرگومانها، نتیجه را تغییر میدهد:
def my_function(animal, name):
print("I have a", animal)
print("My", animal + "'s name is", name)
my_function("Buddy", "dog")
نتیجه:
I have a Buddy
My Buddy's name is dog
امتحان کنید
منبع: www.w3schools.com/python
- بازدید: 18
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.