0
class A:
    pass

def b(self):
    print('b')

A.b = b

a = A()

此时 ab 是一个很好的绑定方法对象,但如果我说:

a.b() 

我收到一条错误消息,说 b 至少需要一个参数。

我的问题是: 1. 如何将方法附加到现有的类上?和 2. 关于这类事情,是否有任何记录在案的“最佳实践”?

4

1 回答 1

1

那应该可以正常工作(请参阅:http: //ideone.com/WWPg8

Python函数是描述符,分别在类和实例上访问时转换为未绑定和绑定方法;见http://docs.python.org/howto/descriptor.html

“猴子补丁”类和实例被认为是完全可以的,只要您清楚自己在做什么并充分记录它。

于 2012-06-18T10:04:51.417 回答