آموزش پایتون - آرگومانهای موقعیتی
آرگومانهای موقعیتی
لیست متغیرهایی که هنگام تعریف یک تابع داخل پرانتز اعلام میشوند، آرگومانهای رسمی نامیده میشوند. همچنین، این آرگومانها به عنوان آرگومانهای موقعیتی نیز شناخته میشوند. یک تابع میتواند با هر تعدادی از آرگومانهای رسمی تعریف شود.
هنگام فراخوانی یک تابع −
-
تمام آرگومانها الزامی هستند.
-
تعداد آرگومانهای واقعی باید برابر با تعداد آرگومانهای رسمی باشد.
-
مقادیر به همان ترتیبی که تعریف شدهاند جایگذاری میشوند.
-
نوع آرگومانها باید با هم مطابقت داشته باشد.
-
نام آرگومانهای رسمی و واقعی نیازی نیست یکسان باشد.
مثالهای آرگومانهای موقعیتی
بیایید برخی از مثالهای آرگومانهای موقعیتی را بررسی کنیم −
مثال ۱
مثال زیر نحوه استفاده از آرگومان موقعیتی را نشان میدهد.
def add(x,y):
z = x+y
print ("x={} y={} x+y={}".format(x,y,z))
a = 10
b = 20
add(a, b)
این کد خروجی زیر را تولید خواهد کرد −
x=10 y=20 x+y=30
در اینجا، تابع add() دارای دو آرگومان رسمی است که هر دو عددی هستند. زمانی که اعداد صحیح ۱۰ و ۲۰ به آن پاس داده میشوند، متغیر "a" مقدار ۱۰ و متغیر "b" مقدار ۲۰ را به ترتیب تعریف دریافت میکنند. تابع add() حاصلجمع را نمایش میدهد.
مثال ۲
پایتون همچنین زمانی که تعداد آرگومانها مطابقت نداشته باشد، خطا ایجاد میکند. اگر فقط یک آرگومان بدهید و نتیجه را بررسی کنید، میتوانید یک خطا را مشاهده کنید.
def add(x,y):
z=x+y
print (z)
a=10;
add(a)
خطای ایجاد شده به صورت زیر خواهد بود −
TypeError: add() missing 1 required positional argument: 'y'
مثال ۳
به همین ترتیب، اگر بیشتر از تعداد آرگومانهای رسمی پاس دهید، خطایی ایجاد میشود که همین موضوع را بیان میکند −
def add(x,y):
z=x+y
print ("x={} y={} x+y={}".format(x,y,z))
add(10, 20, 30)
خروجی به شرح زیر است −
TypeError: add() takes 2 positional arguments but 3 were given
مثال ۴
نوع داده آرگومانهای واقعی و رسمی متناظر باید با هم مطابقت داشته باشند. مقدار a را به یک رشته تغییر دهید و نتیجه را ببینید.
def add(x,y):
z=x+y
print (z)
a="Hello"
b=20
add(a,b)
این کد خطای زیر را تولید خواهد کرد −
z=x+y
~^~
TypeError: can only concatenate str (not "int") to str
تفاوت بین آرگومان موقعیتی و کلیدواژهای
جدول زیر تفاوت بین آرگومان موقعیتی و کلیدواژهای را توضیح میدهد −
| آرگومان موقعیتی | آرگومان کلیدواژهای |
|---|---|
| برای ارسال داده به تابع مورد نظر، فقط از نام آرگومانها استفاده میشود. | آرگومانهای کلیدواژهای به صورت نام=مقدار به تابع پاس داده میشوند. |
| آرگومانها به همان ترتیبی که در تعریف تابع مشخص شدهاند، پاس داده میشوند. | هنگام ارسال آرگومانها، ترتیب آنها میتواند تغییر کند. |
| سنتکس: function(param1, param2,...) | سنتکس: function(param1 = value1,...) |
پیشرفت مطالعه: وضعیت خواندهشدن این درس فقط در همین مرورگر ذخیره میشود؛ بدون نیاز به حساب کاربری.