gpt4 book ai didi

打开 VIM 自动缩进后,Python 解释器无法正确读取缩进

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:43 27 4
gpt4 key购买 nike

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

我正在调试一个运行“良好”的脚本(除了所说的间歇​​性错误),突然之间无法再导入该模块。我撤消了所有更改,但问题仍然存在。好吧,问题S。复数。

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

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

class Lottery:
def __init__(self, session):
self.prizes = PrizeList()
self.session = session
self.players = self.session.listof.players.split(',')
self.pickWinner()

大多数时候,它会给我一个错误,提示“ session ”未定义。这是真实的。我只是导入模块。它在调用它的脚本运行时被定义。我尝试完全删除该行,然后它告诉我未定义“self”。

所有这些都是 20 分钟前运行的原始代码。我正在修复的错误完全在这个模块的不同部分,而且它肯定可以毫无问题地导入。请帮忙!

回溯:

  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

编辑:已解决。好的,不知何故,在编辑时,我确实不小心在制表符和间距之间切换,这导致了问题。我完全按照上面粘贴的方式删除并重新编写了该代码块,现在它可以正常工作了。存在重影缩进问题。

双重编辑:核心问题是我最近才在 Vim 中打开自动缩进。我使用的配置没有使用制表符作为自动缩进,但我过去使用过制表符。

最佳答案

你遇到了缩进问题。

self.session = session行和下面的所有内容都不在您的 __init__ 中方法,它就在class里面 body 。

session未在类主体中定义,仅在 __init__ 内定义,正如你在问题中提到的,所以你得到了错误。

如果删除该行,首先查找的是 selfself.players = self.session.listof.players.split(',') , 所以你得到 self未定义错误。

关于打开 VIM 自动缩进后,Python 解释器无法正确读取缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522869/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com