在 Python 模块“Wave”中,我可以使用以下语法:
import wave
wave.open("test.wav", "rb")
这工作得很好。假设我想使用我自己的类初始化:
class Wave():
def __init__(self):
pass;
def Open(self, fileName, Type):
return True; # Just testing
现在,如果我有调用此类的“main”,为什么我不能执行以下操作?:
if Wave.Open("testing.wav", "rb"):
print "The file is open"
TypeError: unbound method Open() must be called with Wave instance as first argument (got str instance instead)
请您参考如下方法:
为了能够像这样调用它,您需要将 Open 设为静态方法:
@staticmethod
def Open(fileName, Type):
...
您的代码与开头给出的示例之间的区别在于 wave 是一个模块,而 Wave 是一个类。您可以将 Wave 变成一个模块,并让 Open 成为该模块中的顶级函数。
