تقنية

setdefault في بايثون: هل تستبدل None بالقيمة الافتراضية؟

مفتاح r الموجود يعيد None؛ b الغائب يُضاف بقيمة 7.
موجود وغائب.

setdefault تضيف القيمة الافتراضية عند غياب المفتاح؛ None لا تجعل المفتاح غائبًا. [1]

الخلاصة السريعة

لا؛ المفتاح الموجود يحتفظ بقيمته، ومنها None. [1]

  • setdefault تضيف القيمة الافتراضية عند غياب المفتاح؛ None لا تجعل المفتاح غائبًا. [1]
  • المعيار وجود المفتاح؛ "r" in d يختلف عن فحص قيمته. [1]
  • مثال مؤلف على CPython 3.12.14: d={"r":None}؛ d.setdefault("r",7) تعيد None، ويبقى d={"r":None}. [1]
  • بعد ذلك d.setdefault("b",7) تعيد 7 وتضيف المفتاح b لأنه كان غائبًا. [1]
  • تصبح d={"r":None,"b":7}؛ بقيت r بقيمة None، وأضيفت b بقيمة 7. [1]

وجود المفتاح

setdefault تضيف القيمة الافتراضية عند غياب المفتاح؛ None لا تجعل المفتاح غائبًا. [1]

القيمة والوجود

المعيار وجود المفتاح؛ "r" in d يختلف عن فحص قيمته. [1]

مفتاح موجود

مثال مؤلف على CPython 3.12.14: d={"r":None}؛ d.setdefault("r",7) تعيد None، ويبقى d={"r":None}. [1]

d.setdefault("r",7) -> None [1]

قبل الاستدعاء، r موجودة رغم None؛ b غير موجودة.
وجود رغم None.

مفتاح غائب

بعد ذلك d.setdefault("b",7) تعيد 7 وتضيف المفتاح b لأنه كان غائبًا. [1]

d.setdefault("b",7) -> 7 [1]

تصبح d={"r":None,"b":7}؛ بقيت r بقيمة None، وأضيفت b بقيمة 7. [1]

المراجع

  1. Python — setdefault

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.