kw_only=True تحدد تمرير الوسائط بأسمائها؛ لا تلغي افتراضي label في Packet. [1]
الخلاصة السريعة
لا؛ يمكن حذف label من استدعائنا. [1]
- kw_only=True تحدد تمرير الوسائط بأسمائها؛ لا تلغي افتراضي label في Packet. [1]
- على CPython 3.12.14، Packet تعرف number دون افتراضي، وlabel بافتراضي bud؛ نستخدم kw_only=True. [1]
- Packet(7,"leaf") ترفع TypeError؛ تمرير قيم مرتبة موضعيًا لا يحقق شرط تسمية الوسائط. [1]
- Packet(number=7,label="leaf") تنجح؛ number هي 7 وlabel هي leaf. [1]
- تحكم: Packet(number=7) تنجح وتعطي label القيمة bud. الشرط يحدد طريقة تمرير الوسيط، ولا يزيل افتراضيه هنا. نختبر تهيئة مولدة دون وراثة أو تخصيص. [1]
التسمية والافتراضي
kw_only=True تحدد تمرير الوسائط بأسمائها؛ لا تلغي افتراضي label في Packet. [1]
حقلا المثال
على CPython 3.12.14، Packet تعرف number دون افتراضي، وlabel بافتراضي bud؛ نستخدم kw_only=True. [1]
رفض الموضعية
Packet(7,"leaf") ترفع TypeError؛ تمرير قيم مرتبة موضعيًا لا يحقق شرط تسمية الوسائط. [1]
from dataclasses import dataclass @dataclass(kw_only=True) class Packet: number:int label:str="bud" try:Packet(7,"leaf") except TypeError:print("TypeError") [1]

التسمية والتحكم
Packet(number=7,label="leaf") تنجح؛ number هي 7 وlabel هي leaf. [1]
own=Packet(number=7,label="leaf") print(own.number,own.label) control=Packet(number=7) print(control.label) [1]
تحكم: Packet(number=7) تنجح وتعطي label القيمة bud. الشرط يحدد طريقة تمرير الوسيط، ولا يزيل افتراضيه هنا. نختبر تهيئة مولدة دون وراثة أو تخصيص. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
