Skip to main content
 首页 » 编程设计

Python之访问类成员而不初始化对象

2025年05月04日10artech

在 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 成为该模块中的顶级函数。