metadata لا تنفذ شرط min في مثالنا؛ dataclasses لا تستخدمها للتحقق. [1]
الخلاصة السريعة
لا؛ القيمة السالبة تقبلها التهيئة هنا. [1]
- metadata لا تنفذ شرط min في مثالنا؛ dataclasses لا تستخدمها للتحقق. [1]
- على CPython 3.12.14، Entry تعرف count بـfield(metadata={"min":0})؛ min مفتاح من اختيارنا. [1]
- own=Entry(-3) تنجح؛ own.count هي -3 رغم min=0. [1]
- minimum المقروءة من fields(Entry)[0].metadata["min"] هي 0؛ بيانات الحقل بقيت محفوظة. [1]
- فحصنا check المستدعى صراحة بعد الإنشاء يرفض own بـValueError، ويقبل تحكم Entry(3) بـTrue. نختبر حقلًا واحدًا دون تهيئة مخصصة. [1]
البيانات والتنفيذ
metadata لا تنفذ شرط min في مثالنا؛ dataclasses لا تستخدمها للتحقق. [1]
مفتاح اختياري
على CPython 3.12.14، Entry تعرف count بـfield(metadata={"min":0})؛ min مفتاح من اختيارنا. [1]
قيمة دون الحد
own=Entry(-3) تنجح؛ own.count هي -3 رغم min=0. [1]
from dataclasses import dataclass,field,fields @dataclass class Entry:count:int=field(metadata={"min":0}) own=Entry(-3) minimum=fields(Entry)[0].metadata["min"] print(own.count,minimum) [1]

القراءة والفحص
minimum المقروءة من fields(Entry)[0].metadata["min"] هي 0؛ بيانات الحقل بقيت محفوظة. [1]
def check(value): if value.count<minimum:raise ValueError("min") return True try:check(own) except ValueError:print("ValueError") control=Entry(3) print(check(control),control.count) [1]
فحصنا check المستدعى صراحة بعد الإنشاء يرفض own بـValueError، ويقبل تحكم Entry(3) بـTrue. نختبر حقلًا واحدًا دون تهيئة مخصصة. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
