تجنب القائمة المشتركة في المعاملات الإفتراضية للدوال
لما تستخدم قائمة كقيمة إفتراضية لمعامل الدالة نفس القائمة ممكن تفضل مستخدمة بين الإستدعاءات
المشكلة مع القائمة الإفتراضية
القيمة الإفتراضية بتتجهز وقت تعريف الدالة مش كل مرة بتستدعيها
def add_skill(skill, skills=[]):
skills.append(skill)
return skills
print(add_skill("HTML"))
print(add_skill("Python"))النتيجة
['HTML']
['HTML', 'Python']إنشاء قائمة جديدة وقت الحاجة
إستخدم None كقيمة إفتراضية وبعدها أنشئ قائمة داخل الدالة لو المستدعي مبعتش قائمة
def add_skill(skill, skills=None):
if skills is None:
skills = []
skills.append(skill)
return skills
print(add_skill("HTML"))
print(add_skill("Python"))النتيجة
['HTML']
['Python']