match_args=False تعطل توليد __match_args__؛ لا تعطل __init__ المولدة افتراضيًا. [1]
الخلاصة السريعة
لا؛ الإنشاء الموضعي ينجح في مثالنا. [1]
- match_args=False تعطل توليد __match_args__؛ لا تعطل __init__ المولدة افتراضيًا. [1]
- على CPython 3.12.14، Token تعرف number وlabel؛ نستخدم match_args=False دون وراثة. [1]
- own=Token(7,"bud") تنجح؛ own.number هي 7 وown.label هي bud. [1]
- hasattr(Token,"__match_args__") تعطي False؛ غياب السمة لم يمنع تمرير القيم موضعيًا للإنشاء. [1]
- تحكم DefaultToken لها الحقلان نفسيهما والإعدادات الافتراضية: تقبل القيم نفسها، وتولد __match_args__ بالاسمين number ثم label. لا نخصص التهيئة أو السمة. [1]
السمة والتهيئة
match_args=False تعطل توليد __match_args__؛ لا تعطل __init__ المولدة افتراضيًا. [1]
حقلا المثال
على CPython 3.12.14، Token تعرف number وlabel؛ نستخدم match_args=False دون وراثة. [1]
نجاح الإنشاء
own=Token(7,"bud") تنجح؛ own.number هي 7 وown.label هي bud. [1]
from dataclasses import dataclass @dataclass(match_args=False) class Token: number:int label:str own=Token(7,"bud") print(own.number,own.label) print(hasattr(Token,"__match_args__")) [1]

غياب السمة والتحكم
hasattr(Token,"__match_args__") تعطي False؛ غياب السمة لم يمنع تمرير القيم موضعيًا للإنشاء. [1]
@dataclass class DefaultToken: number:int label:str control=DefaultToken(7,"bud") print(control.number,control.label) print(DefaultToken.__match_args__) [1]
تحكم DefaultToken لها الحقلان نفسيهما والإعدادات الافتراضية: تقبل القيم نفسها، وتولد __match_args__ بالاسمين number ثم label. لا نخصص التهيئة أو السمة. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
