我定义了一个类来处理文件,但是在尝试实例化该类并传递文件名时出现以下错误。
让我知道会有什么问题吗?

>>> class fileprocess:
...    def pread(self,filename):
...        print filename
...        f = open(filename,'w')
...        print f
>>> x = fileprocess
>>> x.pread('c:/test.txt')
Traceback (most recent call last):
  File "", line 1, in
TypeError: unbound method pread() must be called with
fileprocess instance as first argument (got nothing instead)

最佳答案

x = fileprocess并不意味着xfileprocess的实例。这意味着x现在是fileprocess类的别名。

您需要使用()创建实例。

x = fileprocess()
x.pread('c:/test.txt')


此外,根据原始代码,您可以使用x创建类实例。

x = fileprocess
f = x() # creates a fileprocess
f.pread('c:/test.txt')

关于python - Python基础类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8159525/

10-13 07:30