3

回到同样令人困惑的脚本..我修复了很多间距问题......但似乎遗漏了更多?这有什么问题 - 它的说法第 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}),
    ]

我只是想不通,我现在想不出来..还有许多其他“未定义自我”错误,但是如果我修复了这个,那么至少我会知道如何修复其余的错误。那么我需要做什么呢?

4

2 回答 2

10

如果代码摘录准确地反映了程序中的内容,那么问题是您的__init__构造函数中只有一行。您需要修复缩进。

Self仅在成员函数中定义。您的非缩进代码不是构造函数的一部分,但实际上在您import的类中运行。

Python 的一大优点是它使用缩进来识别语句块,而不是花括号或begin, end。您必须正确使用缩进,解释器才能理解您的代码。

于 2011-10-29T01:38:11.847 回答
4

缩进在 Python 中很重要。self在 中定义__init__(),因此假设您希望self在第 332 行中引用它,缩进它以匹配上面的行。

于 2011-10-29T01:38:30.840 回答