in _init__无法读取文件

时间:2010-08-11 10:15:13

标签: python class

我是Python的新手。 我试图创建一个名为ic0File的类。

这是我使用它时获得的(Python 3.1)

>>> import sys
>>> sys.path.append('/remote/us01home15/ldagan/python/')
>>> import ic0File
>>> a=ic0File.ic0File('as_client/nohpp.ic0')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "ic0File.py", line 7, in __init__
    print ("".join(self.lines))
NameError: global name 'infile' is not defined

班级代码是:

class ic0File:
    def __init__(self,filename):
        self.infile = open(filename, 'r')
        import sys
        import re
        self.lines=self.infile.readlines() #reading the lines
        print ("".join(self.lines)

谢谢,

2 个答案:

答案 0 :(得分:0)

要重新加载模块(例如,如果您修改了代码),请使用reload()。在你的情况下:

reload( ic0file )

在Python 3中,reload已移至imp库:

import imp
imp.reload( ic0file )

答案 1 :(得分:0)

正如其他用户所指出的那样,实际引发该异常的代码会有所帮助,但我的猜测是您尝试访问infile的{​​{1}}属性,就好像它是实际上是变量。

你可能写过这样的东西:

ic0File

而不是:

self.lines = infile.readlines() #reading the lines

self.lines = self.infile.readlines() #reading the lines 的一种方法中。与其他语言不同,对象属性不会成为所述对象方法中的局部变量。