回到同样令人困惑的脚本..我修复了很多间距问题......但似乎缺少更多?这有什么不对 - 它说法线332 self
没有定义......
以下是该脚本上下几行,以防重要:
#-Whats being decompiled start
#map(None,*list) = zip(*list)
class areaset(top_tsv):
def __init__(self, file_name=0, version=0):
top_tsv.__init__(self, file_name, version)
self.frombin_map = [ <--- this is 332
('ID' ,{'t':'ulong','lpad':0x04}),
('Name' ,{'t':'str','s':0x48,'rpad':0x1C}),
('RGB color' ,{'t':'color','rpad':0x01}),
('Sound effect ID' ,{'t':'long'}),
('Color RGB' ,{'t':'rcolor','rpad':0x01}),
('Lighting RGB value' ,{'t':'rcolor','rpad':0x01}),
('Lighting angle' ,{'t':'float','s':0x03,'f':0x01}),
('Is it City?' ,{'t':'ubyte','rpad':0x03}),
]
我只是想不通,我现在想不到..还有很多其他“自我未定义”的错误,但如果我修复这个,那么至少我会知道如何解决其余的问题。那么我需要做什么?
答案 0 :(得分:10)
如果代码摘录准确反映了程序中的内容,则问题是__init__
构造函数中只有一行。你需要修复你的缩进。
Self
仅在成员函数中定义。您的非缩进代码不是构造函数的一部分,但实际上是在import
您的类时运行。
Python的一大优点是它使用缩进来识别语句块而不是大括号或begin
,end
。 必须正确使用缩进才能让解释器理解您的代码。
答案 1 :(得分:4)
缩进在Python中很重要。 self
是在__init__()
内定义的,因此假设您希望在第332行引用self
,请将其缩进以匹配上述行。