تغيير مدخل _field_defaults لا يغير افتراضي المنشئ في مثالنا. [1] [2]
الخلاصة السريعة
لا؛ T() تبقى مع القيمة الأصلية. [1] [2]
- تغيير مدخل _field_defaults لا يغير افتراضي المنشئ في مثالنا. [1] [2]
- في CPython 3.12.14، نعرّف T بحقل item وdefaults=["bud"]؛ T().item تبدأ بـ"bud". [1] [2]
- نسند "leaf" إلى T._field_defaults["item"]؛ القاموس يعرض {"item":"leaf"}، لكن T().item تبقى "bud". [1] [2]
- المصنع ينشئ قاموس المطابقة منفصلًا عن tuple الافتراضيات المرتبطة بـ__new__.__defaults__؛ الأخيرة تبقى ("bud",) هنا. [1] [2]
- تحكم بصنف مستقل U بحقل item وdefaults=["leaf"] عند الإنشاء؛ قاموسه يعرض {"item":"leaf"} وU().item تعطي "leaf". نختبر نصين وإعادة إسناد مدخل القاموس، دون تغيير افتراضيات المنشئ يدويًا. [1] [2]
المطابقة والمنشئ
تغيير مدخل _field_defaults لا يغير افتراضي المنشئ في مثالنا. [1] [2]
القيمة الأصلية
في CPython 3.12.14، نعرّف T بحقل item وdefaults=["bud"]؛ T().item تبدأ بـ"bud". [1] [2]
إسناد المدخل
نسند "leaf" إلى T._field_defaults["item"]؛ القاموس يعرض {"item":"leaf"}، لكن T().item تبقى "bud". [1] [2]
from collections import namedtuple T=namedtuple("T","item",defaults=["bud"]) T._field_defaults["item"]="leaf" print(T._field_defaults) print(T().item,T.__new__.__defaults__) [1] [2]
![namedtuple; U:defaults=["leaf"]; U._field_defaults:{"item":"leaf"}; U().item:"leaf"](https://images.bahralolom.com/assets/local-2000-20261012/BA-1756/python-named-default-map-values.png)
صنف جديد
المصنع ينشئ قاموس المطابقة منفصلًا عن tuple الافتراضيات المرتبطة بـ__new__.__defaults__؛ الأخيرة تبقى ("bud",) هنا. [1] [2]
U=namedtuple("U","item",defaults=["leaf"]) print(U._field_defaults) print(U().item,U.__new__.__defaults__) [1] [2]
تحكم بصنف مستقل U بحقل item وdefaults=["leaf"] عند الإنشاء؛ قاموسه يعرض {"item":"leaf"} وU().item تعطي "leaf". نختبر نصين وإعادة إسناد مدخل القاموس، دون تغيير افتراضيات المنشئ يدويًا. [1] [2]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
![namedtuple; T:default "bud"; T._field_defaults["item"]="leaf"; T().item:"bud"](https://images.bahralolom.com/assets/local-2000-20261012/BA-1756/python-named-default-map-main.png)