unwrap تتبع __wrapped__ إلى نهاية السلسلة؛ لقاء دورة يرفع ValueError. [1]
الخلاصة السريعة
يرفع الفحص ValueError في دورتنا. [1]
- unwrap تتبع __wrapped__ إلى نهاية السلسلة؛ لقاء دورة يرفع ValueError. [1]
- على CPython 3.12.14، نربط left بـright، ثم right بـleft؛ events تسجل دخول الأجسام. [1]
- unwrap(left) ترفع ValueError؛ العودة إلى دالة سبق المرور بها لا تعطي نهاية للسلسلة. [1]
- بعد الفحص، events تساوي []؛ لم ندخل جسمي الدالتين في هذا الاختبار. [1]
- تحكم مستقل: head تشير إلى tail التي بلا __wrapped__؛ unwrap(head) is tail تعطي True والسجل فارغ. نستخدم stop الافتراضية وروابط دوال عادية. [1]
النهاية والدورة
unwrap تتبع __wrapped__ إلى نهاية السلسلة؛ لقاء دورة يرفع ValueError. [1]
ربط المثال
على CPython 3.12.14، نربط left بـright، ثم right بـleft؛ events تسجل دخول الأجسام. [1]
فشل فك الدورة
unwrap(left) ترفع ValueError؛ العودة إلى دالة سبق المرور بها لا تعطي نهاية للسلسلة. [1]
from inspect import unwrap events=[] def left():events.append("left") def right():events.append("right") left.__wrapped__=right;right.__wrapped__=left try:unwrap(left) except ValueError:print("ValueError") [1]

الأجسام والتحكم
بعد الفحص، events تساوي []؛ لم ندخل جسمي الدالتين في هذا الاختبار. [1]
print(events) def head():events.append("head") def tail():events.append("tail") head.__wrapped__=tail print(unwrap(head) is tail,events) [1]
تحكم مستقل: head تشير إلى tail التي بلا __wrapped__؛ unwrap(head) is tail تعطي True والسجل فارغ. نستخدم stop الافتراضية وروابط دوال عادية. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
