slots=True تجعل dataclass تعيد فئة جديدة بدل الأصلية؛ الافتراضي يعيد الفئة نفسها. [1]
الخلاصة السريعة
لا؛ الناتج فئة أخرى. [1]
- slots=True تجعل dataclass تعيد فئة جديدة بدل الأصلية؛ الافتراضي يعيد الفئة نفسها. [1]
- على CPython 3.12.14، Original تعرف number؛ نحفظ ناتج dataclass(Original,slots=True) باسم Slotted. [1]
- Slotted is Original تعطي False؛ المقارنة تفحص هوية الفئتين، لا اسميهما. [1]
- own=Slotted(4): own.number هي 4، وtype(own) is Slotted تعطي True؛ ننشئ المثيل من الفئة المعادة. [1]
- تحكم مستقل: Plain تعرف number؛ Decorated=dataclass(Plain) بالإعدادات الافتراضية. Decorated is Plain تعطي True، وcontrol=Decorated(4) تحمل 4. نختبر تعريفين بلا وراثة أو فتحات يدوية. [1]
ما الذي تعيده الدالة؟
slots=True تجعل dataclass تعيد فئة جديدة بدل الأصلية؛ الافتراضي يعيد الفئة نفسها. [1]
حفظ الفئة المعادة
على CPython 3.12.14، Original تعرف number؛ نحفظ ناتج dataclass(Original,slots=True) باسم Slotted. [1]
اختلاف الهوية
Slotted is Original تعطي False؛ المقارنة تفحص هوية الفئتين، لا اسميهما. [1]
from dataclasses import dataclass class Original:number:int Slotted=dataclass(Original,slots=True) own=Slotted(4) print(Slotted is Original) print(own.number,type(own) is Slotted) [1]

المثيل والتحكم
own=Slotted(4): own.number هي 4، وtype(own) is Slotted تعطي True؛ ننشئ المثيل من الفئة المعادة. [1]
class Plain:number:int Decorated=dataclass(Plain) control=Decorated(4) print(Decorated is Plain,control.number) [1]
تحكم مستقل: Plain تعرف number؛ Decorated=dataclass(Plain) بالإعدادات الافتراضية. Decorated is Plain تعطي True، وcontrol=Decorated(4) تحمل 4. نختبر تعريفين بلا وراثة أو فتحات يدوية. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
