Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python解释器在启用VIM自动缩进后未正确读取缩进_Python_Interpreter - Fatal编程技术网

Python解释器在启用VIM自动缩进后未正确读取缩进

Python解释器在启用VIM自动缩进后未正确读取缩进,python,interpreter,Python,Interpreter,我不完全确定发生了什么事 我正在调试一个工作“很好”的脚本(除了上面提到的间歇性错误),突然模块无法再导入了。我取消了所有更改,但问题仍然存在。 嗯,问题来了。复数 有一次,我遇到了一个“意外缩进”错误,即使所有的行都完全缩进了。我通过删除该行并重新键入来修复该问题 在下面的代码中,我得到两个错误之一: class Lottery: def __init__(self, session): self.prizes = PrizeList() sel

我不完全确定发生了什么事

我正在调试一个工作“很好”的脚本(除了上面提到的间歇性错误),突然模块无法再导入了。我取消了所有更改,但问题仍然存在。 嗯,问题来了。复数

有一次,我遇到了一个“意外缩进”错误,即使所有的行都完全缩进了。我通过删除该行并重新键入来修复该问题

在下面的代码中,我得到两个错误之一:

class Lottery:
    def __init__(self, session):
          self.prizes = PrizeList()
          self.session = session
          self.players = self.session.listof.players.split(',')
          self.pickWinner()
大多数时候,它给我一个错误,说“会话”没有定义。这是真的。我正在导入模块。当调用它的脚本运行它时,它被定义。我试着完全去掉这一行,然后它告诉我“自我”并没有定义

所有这些都是20分钟前运行的原始代码。我所修复的bug完全位于这个模块的不同部分,而且它导入时肯定没有问题。请帮忙

回溯:

  File "minecraft/mcAdmin.py", line 5, in <module>
    from lottery.lottery import *
  File "/home/tomthorogood/minecraft/lottery/lottery.py", line 36, in <module>
    class Lottery:
  File "/home/tomthorogood/minecraft/lottery/lottery.py", line 39, in Lottery
    self.session = session
NameError: name 'session' is not defined
文件“minecraft/mcAdmin.py”,第5行,在
从彩票进口*
文件“/home/tomthorogood/minecraft/lotket/lotket.py”,第36行,在
班级抽奖:
文件“/home/tomthorogood/minecraft/lotket/lotket.py”,第39行,彩票中
self.session=会话
NameError:未定义名称“会话”
编辑:已解决。好吧,在编辑时,我不小心在制表符和间距之间切换,这导致了问题。我删除并重新编写了与上面粘贴的代码块完全相同的代码块,现在它开始工作了。有一个鬼缩进问题


双重编辑:核心问题是我最近才在Vim中启用了自动缩进。我使用的配置不是将制表符用作自动缩进,而是在过去使用制表符

您遇到了缩进问题

self.session=session
行以及下面的所有内容都不在
\uuuu init\uuuu
方法中,它只是在
主体中

会话
未在类主体中定义,仅在
\uuuu init\uuuu
中定义,正如您在问题中提到的,因此您会得到错误


如果删除该行,首先要查找的是
self.players=self.session.listof.players.split(',')
中的
self
,因此您会得到
self
未定义错误。

您能提供一个重现该问题的示例吗?我不确定您的意思。所发生的一切都是“from lotking.lotking import*”。是否有可能在源文件中混合使用制表符和空格字符?是否尝试删除.pyc文件?否则,这可能是由于缓存造成的,因此您可能需要手动清除缓存或等待超时。您没有版本控制系统吗?以及关于删除该行并想知道为什么未定义“self”的“哦!”。我仍然对self感到困惑。session=session,谢谢。我删除并重新编写了这段代码,它现在可以工作了。我认为你和彼得对压痕的看法都是正确的。它看起来是缩进的,但一定是空格/制表符的错误组合,所以口译员没有这样读。我还更改了帖子的标题,以便对其他人有用,现在我知道问题出在哪里了。我正在设置它!我以前从未有过这种需要,即使是使用Python。我已经对我的.vimrc做了一些改动,并添加了一些自动折叠等功能,因此这可能是核心问题。下次,请先用您使用的任何语言对代码进行重构,以找到出现错误的代码。