آموزش پایتون - آرگومان‌های کلمات کلیدی

آرگومان‌های کلمات کلیدی

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

فراخوانی تابع با آرگومان‌های کلمات کلیدی

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

# Function definition is here
def printinfo( name, age ):
   "This prints a passed info into this function"
   print ("Name: ", name)
   print ("Age ", age)
   return

# Now you can call printinfo function
# by positional arguments
printinfo ("Naveen", 29)

# by keyword arguments
printinfo(name="miki", age = 30)

این کد خروجی زیر را تولید خواهد کرد −

Name: Naveen
Age 29
Name: miki
Age 30

ترتیب آرگومان‌های کلمات کلیدی

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

مثال

اجازه دهید با کمک تعریف تابع زیر این موضوع را درک کنیم −

def division(num, den):
   quotient = num/den
   print ("num:{} den:{} quotient:{}".format(num, den, quotient))

division(10,5)
division(5,10)

از آنجا که مقادیر بر اساس موقعیت اختصاص داده می‌شوند، خروجی به‌صورت زیر است −

num:10 den:5 quotient:2.0
num:5 den:10 quotient:0.5

مثال

به جای ارسال مقادیر با آرگومان‌های موقعیتی، بیاورید تابع را با آرگومان‌های کلمات کلیدی فراخوانی کنیم −

def division(num, den):
   quotient = num/den
   print ("num:{} den:{} quotient:{}".format(num, den, quotient))
   
division(num=10, den=5)
division(den=5, num=10)

برخلاف آرگومان‌های موقعیتی، ترتیب آرگومان‌های کلمات کلیدی اهمیتی ندارد. بنابراین، خروجی زیر را تولید خواهد کرد −

num:10 den:5 quotient:2.0
num:10 den:5 quotient:2.0

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

مثال

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

def division(num, den):
   quotient = num/den
   print ("num:{} den:{} quotient:{}".format(num, den, quotient))

division(num = 5, 10)

از آنجا که آرگومان موقعیتی نمی‌تواند بعد از آرگومان‌های کلمات کلیدی قرار گیرد، پایتون پیام خطای زیر را صادر می‌کند −

    division(num=5, 10)
                      ^
SyntaxError: non-keyword arg after keyword arg

پیشرفت مطالعه: وضعیت خوانده‌شدن این درس فقط در همین مرورگر ذخیره می‌شود؛ بدون نیاز به حساب کاربری.