قد ترغب في جعل معاملات بعض الدوال اختيارية واستخدام قيم مبدئية في حال لم يرغب المستخدم في إعطاء قيم لهذه المعاملات. ويتم ذلك باستخدام قيم مبدئية للمعطيات. يمكنك تحديد القيم المبدئية للمعطيات بإتباع اسم المعامل في تعريف الدالة بعلامة (=) متبوعة بالقيمة المبدئية.
علما بأن القيمة المبدئية للمعطى ينبغي أن تكون ثابتا. وسيتم شرح ذلك بشيء أكثر من التفصيل في فصول لاحقة. اما الآن، فقط تذكر هذا.
مثال 7.5. استخدام القيم المبدئية للمعطيات
#!/usr/bin/python # Filename: func_default.py def say(message, times = 1): print message * times say('Hello') say('World', 5)
تستخدم الدالة المسماة say لطباعة سلسلة ما عددا من المرات حسبمانريد. وإذا لم نعطها أية قيمة، فالوضع الافتراضي هو طباعة الجملة لمرة واحدة فقط. نحقق ذلك عن طريق جعل قيمة المعطى المبدئية للمعامل times تساوي 1.
في أول استخدام للدالة say، نعطي النص فقط فتقوم هي بطباعة الجملة مرة واحدة. في المرة الثانية نعطيها كلا من النص والمعطى 5 والذي يعني أننا نريد قول الجملة خمس مرات.
المعاملات التي في نهاية قائمة المعاملات فقط يمكن أن تُعطى قيم معطيات مبدئية؛ بعبارة أخرى لا يمكن إعطاء قيمة معطى مبدئية لمعامل قبل معامل بدون قيمة معطى مبدئية.
وذلك بسبب أن القيم تسند إلى المعاملات حسب وضعيتها. على سبيل المثال: def func(a, b=5) صالحة بينما def func(a=5, b) غير صالحة.