قراءة args وkwargs من جديد تعكس تعديل arguments في مثالنا. [1] [2]
الخلاصة السريعة
نعم عند قراءة الخاصية مجددًا. [1] [2]
- قراءة args وkwargs من جديد تعكس تعديل arguments في مثالنا. [1] [2]
- على CPython 3.12.14، own(x,*,tag) تعيد الزوج؛ نربط x=4 وtag="bud" صراحة؛ tag بالكلمة المفتاحية فقط، وكلا المعاملين مطلوب. [1] [2]
- بعد تحديث arguments إلى x=9 وtag="leaf"، args هي (9,) وkwargs هي {"tag":"leaf"}؛ الاستدعاء يعيد (9,"leaf"). [1] [2]
- التنفيذ يحسب الخاصيتين من الخريطة عند الوصول؛ لا يعيد قراءة مجموعة وسائط محفوظة سابقًا. [1] [2]
- تحكم مستقل: حفظ control.args وcontrol.kwargs قبل تحديث مماثل يعطي (4,"bud") عند الاستدعاء بهما، والقراءة الجديدة تعطي (9,"leaf"). النطاق لأعداد ونصوص؛ لا نختبر مفاتيح مجهولة أو إكمال الافتراضيات. [1] [2]
قراءة جديدة
قراءة args وkwargs من جديد تعكس تعديل arguments في مثالنا. [1] [2]
ربط صريح
على CPython 3.12.14، own(x,*,tag) تعيد الزوج؛ نربط x=4 وtag="bud" صراحة؛ tag بالكلمة المفتاحية فقط، وكلا المعاملين مطلوب. [1] [2]
بعد التعديل
بعد تحديث arguments إلى x=9 وtag="leaf"، args هي (9,) وkwargs هي {"tag":"leaf"}؛ الاستدعاء يعيد (9,"leaf"). [1] [2]
from inspect import signature def own(x,*,tag):return x,tag a=signature(own).bind(4,tag="bud") a.arguments.update(x=9,tag="leaf") print(a.args,a.kwargs) print(own(*a.args,**a.kwargs)) [1] [2]
![own(x,*,tag) returns (x,tag); control=signature(own).bind(4,tag="bud"); cache=control.args,control.kwargs; control.arguments.update(x=9,tag="leaf"); own(*cache[0],**cache[1]):(4,"bud"); own(*control.args,**control.kwargs):(9,"leaf")](https://images.bahralolom.com/assets/local-2000-20261012/BA-1697/python-boundargs-views-values.png)
الحساب والتحكم
التنفيذ يحسب الخاصيتين من الخريطة عند الوصول؛ لا يعيد قراءة مجموعة وسائط محفوظة سابقًا. [1] [2]
control=signature(own).bind(4,tag="bud") cached_args=control.args;cached_kwargs=control.kwargs control.arguments.update(x=9,tag="leaf") print(own(*cached_args,**cached_kwargs)) print(own(*control.args,**control.kwargs)) [1] [2]
تحكم مستقل: حفظ control.args وcontrol.kwargs قبل تحديث مماثل يعطي (4,"bud") عند الاستدعاء بهما، والقراءة الجديدة تعطي (9,"leaf"). النطاق لأعداد ونصوص؛ لا نختبر مفاتيح مجهولة أو إكمال الافتراضيات. [1] [2]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
