class A:
pass
def b(self):
print('b')
A.b = b
a = A()
此时a.b是一个很好的绑定方法对象,但如果我说:
a.b()
我得到一个错误,说b需要至少一个参数。
我的问题是: 1.如何将方法引入现有类?和 2.对于这类事情,是否有任何记录在案的“最佳实践”?
答案 0 :(得分:1)
这应该可以正常工作(参见:http://ideone.com/WWPg8)
Python函数是描述符,分别在类和实例上访问时转换为未绑定和绑定的方法;见http://docs.python.org/howto/descriptor.html
“猴子修补”类和实例被认为是完全正常的,只要您清楚自己正在做什么并充分记录它。