تقنية

namedtuple في بايثون: هل تبدأ defaults من أول حقل؟

للحقول x,y,z: الافتراضيان bud,leaf يخصان y,z.
افتراضيان: y وz.

defaults في namedtuple تطبق على الحقول الواقعة أقصى اليمين، بالترتيب. [1]

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

لا؛ في مثالنا تخص y وz، ويبقى x مطلوبًا. [1]

  • defaults في namedtuple تطبق على الحقول الواقعة أقصى اليمين، بالترتيب. [1]
  • للحقول x,y,z وقيمتين افتراضيتين bud,leaf: y تأخذ bud وz تأخذ leaf؛ _field_defaults تعرض المطابقة. [1]
  • على CPython 3.12.14، ننشئ الصنف T بالقيم الافتراضية النصية أدناه. [1]
  • T(4) تعطي القيم (4,"bud","leaf")؛ قدمنا x واستعملنا الافتراضيين للحقلين الآخرين. [1]
  • تحكم: T(4,"seed") تعطي (4,"seed","leaf")؛ T() تثير TypeError لغياب x؛ المطابقة والمدخلات لم تتغير. [1]

موضع الافتراضيات

defaults في namedtuple تطبق على الحقول الواقعة أقصى اليمين، بالترتيب. [1]

مطابقة الحقول

للحقول x,y,z وقيمتين افتراضيتين bud,leaf: y تأخذ bud وz تأخذ leaf؛ _field_defaults تعرض المطابقة. [1]

صنف للتجربة

على CPython 3.12.14، ننشئ الصنف T بالقيم الافتراضية النصية أدناه. [1]

from collections import namedtuple defaults=["bud","leaf"] T=namedtuple("T","x y z",defaults=defaults) print(tuple(T(4))) [1]

T(4,"seed"): القيم 4،seed،leaf.
تجاوز y فقط.

قيم وتحكم

T(4) تعطي القيم (4,"bud","leaf")؛ قدمنا x واستعملنا الافتراضيين للحقلين الآخرين. [1]

print(tuple(T(4,"seed"))) print(T._field_defaults) [1]

تحكم: T(4,"seed") تعطي (4,"seed","leaf")؛ T() تثير TypeError لغياب x؛ المطابقة والمدخلات لم تتغير. [1]

المراجع

  1. Python namedtuple

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

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