تقنية

finalize.peek في بايثون: هل قاموس الوسائط نسخة مستقلة؟

weakref.finalize; cb(*,tag="bud") returns tag; own:Node alive; f=finalize(own,cb,tag="bud"); box=f.peek(); box[3]["tag"]="leaf"; f():"leaf"
مسجلة غير فارغة.

قاموس الوسائط غير الفارغ ليس نسخة مستقلة في مثالنا. [2]

الخلاصة السريعة

لا هنا؛ لكن التسجيل بلا وسائط يختلف. [2]

  • قاموس الوسائط غير الفارغ ليس نسخة مستقلة في مثالنا. [2]
  • على CPython 3.12.14، cb(*,tag="bud") تعيد tag؛ own كائن Node باقٍ، وf=finalize(own,cb,tag="bud") منهي حي. [1] [2]
  • box=f.peek() يعيد صفًا آخره قاموس الوسائط؛ تغيير box[3]["tag"] إلى "leaf" يظهر عند الاستدعاء الصريح f()؛ الناتج "leaf". [1] [2]
  • التنفيذ يعيد info.kwargs or {}؛ المسجلة غير الفارغة تعاد نفسها، أما الغائبة فتعطي قاموسًا جديدًا. [2]
  • تحكم مستقل: control كائن Node باقٍ وg=finalize(control,cb) بلا وسائط مسماة؛ تعديل قاموس peek إلى tag="leaf" يترك g() تعيد "bud". هذا تفصيل التنفيذ المثبت، لا نصيحة لتعديله. [2]

المشاركة

قاموس الوسائط غير الفارغ ليس نسخة مستقلة في مثالنا. [2]

تسجيل صريح

على CPython 3.12.14، cb(*,tag="bud") تعيد tag؛ own كائن Node باقٍ، وf=finalize(own,cb,tag="bud") منهي حي. [1] [2]

تعديل واستدعاء

box=f.peek() يعيد صفًا آخره قاموس الوسائط؛ تغيير box[3]["tag"] إلى "leaf" يظهر عند الاستدعاء الصريح f()؛ الناتج "leaf". [1] [2]

from weakref import finalize class Node:pass def cb(*,tag="bud"):return tag own=Node();f=finalize(own,cb,tag="bud") box=f.peek();box[3]["tag"]="leaf" print(f()) [1] [2]

weakref.finalize; cb(*,tag="bud") returns tag; control:Node alive; g=finalize(control,cb); box=g.peek(); box[3]["tag"]="leaf"; g():"bud"
تسجيل فارغ.

تنفيذ وتحكم

التنفيذ يعيد info.kwargs or {}؛ المسجلة غير الفارغة تعاد نفسها، أما الغائبة فتعطي قاموسًا جديدًا. [2]

control=Node();g=finalize(control,cb) box=g.peek();box[3]["tag"]="leaf" print(g()) [1] [2]

تحكم مستقل: control كائن Node باقٍ وg=finalize(control,cb) بلا وسائط مسماة؛ تعديل قاموس peek إلى tag="leaf" يترك g() تعيد "bud". هذا تفصيل التنفيذ المثبت، لا نصيحة لتعديله. [2]

المراجع

  1. Python finalize.peek
  2. CPython weakref

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.