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