【问题标题】:Python: "Self" is not not defined?Python:“自我”没有定义?
【发布时间】:2011-10-29 01:35:25
【问题描述】:

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

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

【问题讨论】:

  • 在粘贴之前尝试创建一个更简单的示例对您和回答您的问题的人都有帮助。如果你真的不知道是什么导致了这个问题,那么最好粘贴整个脚本而不是一个实际上不会运行的 sn-p,但最好还是创建一个 执行的小 sn-p 实际运行,并产生错误。

标签: python python-3.x self defined


【解决方案1】:

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

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

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

【讨论】:

  • 我不相信“美”是正确的词。但是,您无法争辩这样一个事实,即从所有方面考虑,python 都是一种了不起的语言。对我来说,忍受空格问题是值得的。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多