compare=False تستبعد note من المساواة المولدة؛ لا تحذف قيمة الحقل من كائننا. [1]
الخلاصة السريعة
لا؛ اختلاف note لا يمنع المساواة هنا. [1]
- compare=False تستبعد note من المساواة المولدة؛ لا تحذف قيمة الحقل من كائننا. [1]
- على CPython 3.12.14، left وright من Row نفسها، ولهما key=2؛ note هي bud للأول وleaf للثاني. [1]
- left==right تعطي True؛ key تشارك في المقارنة، وnote معرفة بـfield(compare=False). [1]
- left.note وright.note تبقيان bud وleaf؛ مساواة الكائنين لا تعني تطابق الحقل المستبعد. [1]
- تحكم: Row(3,"bud") تختلف عن left، فالمقارنة تعطي False رغم تطابق note. نختبر مساواة مولدة لفئة واحدة، دون هاش أو ترتيب أو مساواة مخصصة. [1]
المشاركة في المقارنة
compare=False تستبعد note من المساواة المولدة؛ لا تحذف قيمة الحقل من كائننا. [1]
كائنان وفئة واحدة
على CPython 3.12.14، left وright من Row نفسها، ولهما key=2؛ note هي bud للأول وleaf للثاني. [1]
المساواة المولدة
left==right تعطي True؛ key تشارك في المقارنة، وnote معرفة بـfield(compare=False). [1]
from dataclasses import dataclass,field @dataclass class Row: key:int note:str=field(compare=False) left=Row(2,"bud");right=Row(2,"leaf") print(left==right) [1]

القيم والتحكم
left.note وright.note تبقيان bud وleaf؛ مساواة الكائنين لا تعني تطابق الحقل المستبعد. [1]
print(left.note,right.note) control=Row(3,"bud") print(left==control) [1]
تحكم: Row(3,"bud") تختلف عن left، فالمقارنة تعطي False رغم تطابق note. نختبر مساواة مولدة لفئة واحدة، دون هاش أو ترتيب أو مساواة مخصصة. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
