对象初始化期间的python属性错误
Python 2.6.7;视窗7 在python中解决Deitel的“简单编译器”练习。存储库位于。编写测试套件对象初始化期间的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
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