我尝试在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的文件中:
导入foo
d = foo.data
d.fn(1,2,3)

但是,我得到以下错误:
类型错误:必须使用数据实例作为第一个参数调用未绑定的方法f()(改为使用int实例)
我想这已经足够公平了——python将d.myfunction作为一个类方法来处理。但是,我希望它将其视为一个普通函数-因此我可以调用它,而不必向MyFunction定义中添加一个未使用的“self”参数。
所以问题是:
如何在类对象中存储函数而不将函数绑定到该类?

最佳答案

data.fn = staticmethod(myFunction)

你应该做这个把戏。

关于python - 将未绑定(bind)的python函数存储在类对象中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/327483/

10-12 12:57
查看更多