repr=True تطلب توليد __repr__؛ إذا عرفتها الفئة بنفسها، يتجاهل dataclass هذا الخيار. [1]
الخلاصة السريعة
لا؛ طريقتنا تبقى مستخدمة. [1]
- repr=True تطلب توليد __repr__؛ إذا عرفتها الفئة بنفسها، يتجاهل dataclass هذا الخيار. [1]
- على CPython 3.12.14، Box تعرف number وطريقة __repr__ تعيد bud؛ نحفظ الطريقة في saved قبل تطبيق dataclass(Box,repr=True). [1]
- own=Decorated(4): own.number هي 4، وrepr(own) تعطي bud من طريقتنا. [1]
- Decorated.__repr__ is saved تعطي True؛ بقيت دالة العرض نفسها بعد تطبيق المزخرف. [1]
- تحكم مستقل: Plain تعرف number دون طريقة عرض خاصة؛ repr=True تولدها. control=Plain(4)، وrepr(control) تعطي Plain(number=4). نختبر طريقة مكتوبة مباشرة بلا وراثة أو استبعاد حقول من العرض. [1]
شرط توليد العرض
repr=True تطلب توليد __repr__؛ إذا عرفتها الفئة بنفسها، يتجاهل dataclass هذا الخيار. [1]
طريقة قبل المزخرف
على CPython 3.12.14، Box تعرف number وطريقة __repr__ تعيد bud؛ نحفظ الطريقة في saved قبل تطبيق dataclass(Box,repr=True). [1]
عرض مخصص باق
own=Decorated(4): own.number هي 4، وrepr(own) تعطي bud من طريقتنا. [1]
from dataclasses import dataclass class Box: number:int def __repr__(self):return "bud" saved=Box.__repr__ Decorated=dataclass(Box,repr=True) own=Decorated(4) print(own.number,repr(own)) print(Decorated.__repr__ is saved) [1]

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