我正在尝试在python中执行以下操作:
在名为foo.py的文件中:
# simple function that does something: def myFunction(a,b,c): print "call to myFunction:",a,b,c # class used to store some data: class data: fn = None # assign function to the class for storage. data.fn = myFunction
然后在一个名为bar.py的文件中:import foo
d = foo.data d.fn(1,2,3)
但是,我收到以下错误:
TypeError:必须使用数据实例作为第一个参数调用未绑定方法f()(改为使用int实例)
我认为这是公平的 - python将d.myFunction视为一个类方法.但是,我希望它将它视为普通函数 - 所以我可以调用它而无需在myFunction定义中添加未使用的'self'参数.
所以问题是:
如何在没有函数绑定到该类的情况下将函数存储在类对象中?
data.fn = staticmethod(myFunction)
应该做的伎俩.