对象初始化期间的python属性错误

对象初始化期间的python属性错误,python,initialization,attributeerror,Python,Initialization,Attributeerror,Python 2.6.7;视窗7 在python中解决Deitel的“简单编译器”练习。存储库位于。编写测试套件 module compiler.py class SCompiler( object ) : RAMSIZE = 100 # more static attributes def __init__( self ) : self.symbolTable = [ TableEntry( ) ] * SCompiler.RAMSIZE

Python 2.6.7;视窗7

在python中解决Deitel的“简单编译器”练习。存储库位于。编写测试套件

module compiler.py
class SCompiler( object ) :
    RAMSIZE = 100
    # more static attributes

    def __init__( self ) :
        self.symbolTable = [ TableEntry( ) ] * SCompiler.RAMSIZE
        self.lineFlags[ -1 ] * SCompiler.RAMSIZE
        # more initializations
堆栈跟踪

File "testCompiler.py", line 45, in <module>
tool = compiler.SCompiler( )
File "absolutePath\compiler.py", line 37, in `__init__`
self.lineFlags[ -1 ] * SCompiler.RAMSIZE
AttributeError: 'SCompiler' object has no attribute 'lineFlags'
文件“testCompiler.py”,第45行,在
tool=compiler.SCompiler()
文件“absolutePath\compiler.py”,第37行,在`\uu init中__`
self.lineFlags[-1]*SCompiler.RAMSIZE
AttributeError:“SCompiler”对象没有属性“lineFlags”

我不确定这里有什么拼写错误。文件“compiler.py”以静默方式编译。TableEntry是文件中的另一个类。谢谢您的建议。

您必须先初始化self.lineFlags,然后才能将其视为数组

self.lineFlags = []
self.lineFlags[-1] * SCompiler.RAMSIZE

您将获得
AttributeError
,因为它调用:

self.lineFlags[-1]
在知道什么是
lineFlag
之前

但从下面的一行判断(来自您链接的存储库中的文件):

我认为作者忘记了一个
=
,请尝试替换:

self.lineFlags[ -1 ] * SCompiler.RAMSIZE
与:

self.lineFlags[ -1 ] * SCompiler.RAMSIZE
self.lineFlags = [ -1 ] * SCompiler.RAMSIZE