تقنية

_make في namedtuple: هل تكمل defaults الحقول الناقصة؟

namedtuple; T:x,y,z; defaults:["bud","leaf"]; items:[4]; T._make(items); TypeError
نقص.

_make لا تكمل القيم الناقصة بالافتراضيين في مثالنا. [1] [2]

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

لا؛ نمرر الحقول كاملة هنا. [1] [2]

  • _make لا تكمل القيم الناقصة بالافتراضيين في مثالنا. [1] [2]
  • في CPython 3.12.14، T لها الحقول x,y,z وdefaults=["bud","leaf"]؛ y وz لهما قيمتان افتراضيتان؛ items=[4] تقدم قيمة واحدة. [1] [2]
  • T._make(items) ترفع TypeError رغم الافتراضيين؛ items تبقى [4]. [1] [2]
  • _make تستعمل tuple.__new__ مباشرة وتفحص الطول؛ الافتراضيان مرتبطان بالمنشئ المولد. [1] [2]
  • تحكم بصنف جديد U بالحقول x,y,z وdefaults=["bud","leaf"]؛ U(4) تعطي (4,"bud","leaf")؛ T._make([4,"bud","leaf"]) تعطيها أيضًا بتمرير القيم كاملة. نختبر قوائم محدودة وصنفين عاديين من المصنع. [1] [2]

الافتراضيان

_make لا تكمل القيم الناقصة بالافتراضيين في مثالنا. [1] [2]

الحقول

في CPython 3.12.14، T لها الحقول x,y,z وdefaults=["bud","leaf"]؛ y وz لهما قيمتان افتراضيتان؛ items=[4] تقدم قيمة واحدة. [1] [2]

قيمة ناقصة

T._make(items) ترفع TypeError رغم الافتراضيين؛ items تبقى [4]. [1] [2]

from collections import namedtuple T=namedtuple("T","x y z",defaults=["bud","leaf"]) items=[4] try:T._make(items) except TypeError:print("TypeError") print(items) [1] [2]

namedtuple; U:x,y,z; defaults:["bud","leaf"]; U(4):(4,"bud","leaf"); T._make([4,"bud","leaf"]):(4,"bud","leaf")
اكتمال.

المنشئ

_make تستعمل tuple.__new__ مباشرة وتفحص الطول؛ الافتراضيان مرتبطان بالمنشئ المولد. [1] [2]

U=namedtuple("U","x y z",defaults=["bud","leaf"]) print(tuple(U(4))) print(tuple(T._make([4,"bud","leaf"]))) [1] [2]

تحكم بصنف جديد U بالحقول x,y,z وdefaults=["bud","leaf"]؛ U(4) تعطي (4,"bud","leaf")؛ T._make([4,"bud","leaf"]) تعطيها أيضًا بتمرير القيم كاملة. نختبر قوائم محدودة وصنفين عاديين من المصنع. [1] [2]

المراجع

  1. Python namedtuple
  2. CPython namedtuple

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

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