دو راه برای دادن مقدار به تابع
وقتی تابعی چند پارامتر دارد، پایتون از کجا میفهمد کدام مقدار مال کدام پارامتر است؟ دو راه: ترتیب و اسم.
def greet(name, age=20, title="sir"):
print(f"Hello dear {title} {name}, you are {age} years old.")
greet("Ali") # آرگومان موقعیتی: Ali به name میرود، بقیه پیشفرض
greet("Ali", 33) # 33 به age میرود (به همان ترتیب)
greet("Ali", title="Dr.") # آرگومان کلیدی: فقط title عوض میشود
- مقدار پیشفرض یعنی «اگر صداکننده نداد، این را بگذار»:
def power(base, exp=2):. پارامترهای با پیشفرض باید بعد از پارامترهای بدون پیشفرض بیایند. - آرگومان کلیدی یعنی هنگام صدا زدن اسم پارامتر را بنویسی:
power(exp=3, base=2). ترتیب مهم نمیشود و کد خواناتر است؛ مقایسه کنprint_name("Eric", "Grimson", False)باprint_name("Eric", "Grimson", reverse=False). - قانون ترتیب هنگام ترکیب: اول موقعیتیها، بعد کلیدیها؛ وگرنه
SyntaxErrorمیگیری.
و خروجی هر تابعی میتواند آرگومان تابع دیگر باشد؛ پایتون از داخلیترین پرانتز شروع میکند. این فقط وقتی کار میکند که تابع درونی return کند، وگرنه تابع بیرونی None میگیرد. درس کامل آرگومانها را هم ببین.