我有一个父一个图书馆和儿童十几使用另一种方法)的方法。所以我想改变父类并使用它的孩子。settattr对父类儿童
# mylib2.py:
#
import mylib1
def fooMethod(self):
print 'a={}, b={}'.format(self.a, self.b)
setattr(mylib1.Foo, 'fooMethod', fooMethod)
现在我可以这样使用它:
# way ONE:
import mylib2
fc = mylib2.mylib1.FooChild(3, 4)
fc.fooMethod()
或像这样:
# way TWO:
# order doesn't matter here:
import mylib1
import mylib2
fc = mylib1.FooChild(3, 4)
fc.fooMethod()
所以,我的问题是:
- 这是好事?
- 这应该如何更好地完成?
你想达到什么目的?为什么你需要动态添加一个方法? – Pynchia
@Pynchia,我在问如何做得更好。所以我必须使用'mylib1.Foo'和* all *它的子类,并且我需要在所有这些[sub]类中都有'fooMethod'。我不想将所有东西都划分子类。 – brownian