名称错误:未定义名称“self”?

2024-09-29 23:20:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在研究python编程。在

class A:
    def LoadPosition(self):
        FILE = open('a.txt', "r+")

        i = 0
        for node in self.nodes:
            line = FILE.readline()
            if i == 0:
                scaling_factor == float(line)
                i += 1
            else:
                tmpn, tmpx, tmpy, tmpa = line.split('\t')
                node.id = tmpn
                node.coordinate_x = float(tmpx)
                node.coordinate_y = float(tmpy)
                node.area = int(tmpa)
        FILE.close()

以前还不错,但突然间,它显示了NameError消息。请帮帮我。在

提前谢谢。在


Tags: selfnodecoordinatedef编程lineopenfloat
1条回答
网友
1楼 · 发布于 2024-09-29 23:20:46

您以奇怪的方式混合空格和制表符,这可能会让Python感到困惑。以下是我从编辑窗口复制并粘贴代码时得到的结果:

In [2]: for line in s.splitlines():
   ...:     print repr(line)
   ...:     
''
'    class A:'
'    \tdef LoadPosition(self):'
'\t        FILE = open(\'a.txt\', "r+")'
'    \t'
'\t\t    i = 0'
'    \t    for node in self.nodes:'
'    \t    \tline = FILE.readline()'
'    \t    \tif i == 0:'
'    \t    \t\tscaling_factor == float(line)'
'    \t    \t\ti += 1'
'    \t    \telse:'
"    \t    \t\ttmpn, tmpx, tmpy, tmpa = line.split('\t')"
'\t       \t     \tnode.id = tmpn'
'   \t\t         \tnode.coordinate_x = float(tmpx)'
'   \t\t         \tnode.coordinate_y = float(tmpy)'
'   \t\t     \t    node.area = int(tmpa)'
'\t\t    FILE.close()'

[请注意,如果有人从发布的问题而不是原始编辑窗口复制代码,这可能不会发生至少有时我无法看到原始选项卡,因此尝试您代码的人可能不会有任何问题。]

步骤1:使用python -tt yourfilenamehere.py运行代码,以确认这是一个制表符错误。在

第二步:切换到在任何地方使用四个空格键。在

相关问题 更多 >

    热门问题