فصول الترقيع في بيثون
-
12-09-2019 - |
سؤال
لنفترض أن لدي فئة بيثون التي أرغب في إضافة خاصية إضافية إليها.
هل هناك أي فرق بين
import path.MyClass
MyClass.foo = bar
واستخدام شيء مثل:
import path.MyClass
setattr(MyClass, 'foo', bar)
?
إذا لم يكن الأمر كذلك، لماذا يبدو أن الناس يفعلون الثانية بدلا من الأول؟ (على سبيل المثال هنا. http://concisionandconcinity.blogspot.com/2008/10/chaining-monkey-patches-in-python.html. )
المحلول
البيانات معادلة، ولكن قد يتم استخدام Setattr لأنه الاختيار الأكثر ديناميكية للاثنين (مع Setattr يمكنك استخدام متغير لاسم السمة.)
لا تنتمي إلى StackOverflow