Python绑定,未绑定和静态方法
示例
在Python3中删除了绑定和非绑定方法的概念。在Python3中,当您在类中声明方法时,您正在使用def关键字,从而创建了一个函数对象。这是一个常规函数,周围的类用作其命名空间。在下面的示例中,我们f在class中声明methodA,它成为一个函数A.f:
class A(object): def f(self, x): return 2 * x A.f # <functionA.fat ...> (in Python 3.x)
在Python2中,行为有所不同:类中的函数对象被类型为的对象隐式替换,这些对象instancemethod被称为未绑定方法,因为它们未绑定到任何特定的类实例。可以使用.__func__属性访问基础功能。
A.f # <unbound method A.f> (in Python 2.x) A.f.__class__ # <type 'instancemethod'> A.f.__func__ # <function f at ...>