سؤال

لنفترض أن لدي فئة بيثون التي أرغب في إضافة خاصية إضافية إليها.

هل هناك أي فرق بين

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 يمكنك استخدام متغير لاسم السمة.)

يرى: http://docs.python.org/library/functions.html#settr.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top