پارامترهای پیشفرض

پارامترهای پیشفرض همانگونه که از اسمشان پیداست دارای مقادیر پیشفرضی هستند و می‌توان به آنها آرگومان ارسال کرد یا نه. اگر به اینگونه پارامترها، آرگومانی ارسال نشود از مقادیر پیشفرض استفاده می‌کنند. به مثال زیر توجه کنید :

  1: def PrintMessage(message = "Welcome to Python Tutorials!"):
  2:   print(message);                                       
  3: 
  4: PrintMessage();    
  5: PrintMessage("Learn Python Today!");
Welcome to Python Tutorials!
Learn Python Today!

تابع PrintMessage() (خطوط 2-1) یک پارامتر اختیاری دارد. برای تعریف یک پارامتر اختیاری می‌توان به آسانی و با استفاده از علامت = یک مقدار را به یک پارامتر اختصاص داد (مثال بالا خط 1). دو بار تابع را فراخوانی می‌کنیم. در اولین فراخوانی (خط 4) ما آرگومانی به تابع ارسال نمی‌کنیم بنابراین تابع از مقدار پیشفرض (Welcome to Python Tutorials!) استفاده می‌کند. در دومین فراخوانی (خط 5) یک پیغام (آرگومان) به تابع ارسال می‌کنیم که جایگزین مقدار پیشفرض پارامتر می‌شود. اگر از چندین پارامتر در تابع استفاده می‌کنید همه پارامترهای اختیاری باید در آخر بقیه پارامترها ذکر شوند. به مثالهای زیر توجه کنید:

def SomeFunction(default1 = 10, default2 = 20, require1, require2) #ERROR

def SomeFunction(require1, default1 = 10, require2, default2 = 20) #ERROR

def SomeFunction(require1, require2, default1 = 10, default2 = 20) #Correct

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

def SomeFunction(required1, default1 = 10,  default2 = 20):
   #Some Code

SomeFunction(10, , 100); #Error