我想拥有类的属性,它存储了一些函数,但是这个函数不是类的方法,稍后会被其他组件调用,完全超出类本身的范围,所以类只是容器对于具有功能的属性。但是使用TypeError: unbound method
def f(x): print x
class A:
not_method = f
A.not_method(10)
有没有办法抑制此错误?显而易见的方法是存储由某些数据对象扭曲的函数,如元组,但它似乎不那么优雅。
def f(x): print x
class A:
not_method = (f,)
A.not_method[0](10)
@staticmethod
的建议解决方案并不那么酷,原因如下:
- 正式地,属性根本不是一个方法,它只是具有一些外部函数的属性
- @staticmethod
装饰器不适用于属性赋值