is_dataclass تقبل فئة البيانات ومثيلها؛ True وحدها لا تميز بينهما. [1]
الخلاصة السريعة
لا؛ فئة البيانات نفسها تعطي True. [1]
- is_dataclass تقبل فئة البيانات ومثيلها؛ True وحدها لا تميز بينهما. [1]
- على CPython 3.12.14، Packet فئة بيانات بحقل number؛ own=Packet(4). Plain فئة عادية، وcontrol مثيلها. [1]
- is_dataclass(Packet) وis_dataclass(own) تعطيان True؛ الفئة والمثيل يشتركان في نتيجة الفحص. [1]
- تحكم: is_dataclass(Plain) وis_dataclass(control) تعطيان False؛ الفئة العادية ومثيلها لا يحققان هذا الفحص. [1]
- instance_only تضيف not isinstance(value,type) إلى الفحص؛ تعطي False للفئة Packet وTrue للمثيل own وFalse للتحكم. نختبر تعريفاتنا بلا وراثة أو علامات بيانات مخصصة. [1]
ما الذي تقبله الدالة؟
is_dataclass تقبل فئة البيانات ومثيلها؛ True وحدها لا تميز بينهما. [1]
الفئتان والمثيلان
على CPython 3.12.14، Packet فئة بيانات بحقل number؛ own=Packet(4). Plain فئة عادية، وcontrol مثيلها. [1]
نتيجة مشتركة
is_dataclass(Packet) وis_dataclass(own) تعطيان True؛ الفئة والمثيل يشتركان في نتيجة الفحص. [1]
from dataclasses import dataclass,is_dataclass @dataclass class Packet:number:int class Plain:pass own=Packet(4);control=Plain() print(is_dataclass(Packet),is_dataclass(own)) print(is_dataclass(Plain),is_dataclass(control)) [1]

التحكم والتمييز
تحكم: is_dataclass(Plain) وis_dataclass(control) تعطيان False؛ الفئة العادية ومثيلها لا يحققان هذا الفحص. [1]
def instance_only(value): return is_dataclass(value) and not isinstance(value,type) print(instance_only(Packet),instance_only(own),instance_only(control)) [1]
instance_only تضيف not isinstance(value,type) إلى الفحص؛ تعطي False للفئة Packet وTrue للمثيل own وFalse للتحكم. نختبر تعريفاتنا بلا وراثة أو علامات بيانات مخصصة. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
