deepcopy للطريقة تنسخ الكائن المرتبط بها في مثالنا، وتحتفظ بالدالة نفسها. [1] [2]
الخلاصة السريعة
لا؛ الارتباط بكائن منسوخ هنا. [1] [2]
- deepcopy للطريقة تنسخ الكائن المرتبط بها في مثالنا، وتحتفظ بالدالة نفسها. [1] [2]
- على CPython 3.12.14، كائن Node يحمل n=4؛ read تعيد n، وmethod=own.read. [1] [2]
- deep.__self__ is own تعطي False، وdeep.__func__ is method.__func__ تعطي True؛ ناتج deep() هو 4. [1] [2]
- التنفيذ يحتفظ بـ__func__ وينسخ __self__ عميقًا. بعد own.n=9، تعطي method() العدد 9 وdeep() العدد 4. [1] [2]
- مقارنة: copy(method) تبقى مرتبطة بـown وتعطي 9 بعد التعديل. المثال لطريقة بايثون عادية دون نسخ مخصص؛ لا نعمم على الطرق المدمجة. [1] [2]
ارتباط جديد
deepcopy للطريقة تنسخ الكائن المرتبط بها في مثالنا، وتحتفظ بالدالة نفسها. [1] [2]
طريقة المثال
على CPython 3.12.14، كائن Node يحمل n=4؛ read تعيد n، وmethod=own.read. [1] [2]
الهوية
deep.__self__ is own تعطي False، وdeep.__func__ is method.__func__ تعطي True؛ ناتج deep() هو 4. [1] [2]
from copy import copy,deepcopy class Node: def __init__(self,n):self.n=n def read(self):return self.n own=Node(4);method=own.read deep=deepcopy(method);shallow=copy(method) print(deep.__self__ is own, deep.__func__ is method.__func__,deep()) [1] [2]

التعديل والمقارنة
التنفيذ يحتفظ بـ__func__ وينسخ __self__ عميقًا. بعد own.n=9، تعطي method() العدد 9 وdeep() العدد 4. [1] [2]
own.n=9 print(method(),deep()) print(shallow.__self__ is own,shallow()) [1] [2]
مقارنة: copy(method) تبقى مرتبطة بـown وتعطي 9 بعد التعديل. المثال لطريقة بايثون عادية دون نسخ مخصص؛ لا نعمم على الطرق المدمجة. [1] [2]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
