Theme
Primary Color

تجنب القائمة المشتركة في المعاملات الإفتراضية للدوال

لما تستخدم قائمة كقيمة إفتراضية لمعامل الدالة نفس القائمة ممكن تفضل مستخدمة بين الإستدعاءات

المشكلة مع القائمة الإفتراضية

القيمة الإفتراضية بتتجهز وقت تعريف الدالة مش كل مرة بتستدعيها

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']
python شرح