你用什么技巧来避免被python空格语法绊倒?

Nei*_*lis 4 python syntax

我是一名经验丰富的程序员,但在python中仍然有点绿色.我刚刚被缩进错误抓住了,这花费了我大量的调试时间.我想知道经验丰富的python程序员做了什么来避免首先出现这样的问题.

这是代码(一个更大的程序的一部分):

class Wizvar():

    def select(self):
        self.selected = True

    def unselect(self):
        self.selected = False

        value = None
Run Code Online (Sandbox Code Playgroud)

问题是'value = None'应该缩进一级.实际上,每次调用unselect方法时,变量都会被破坏,而不是只变一次.我多次盯着这看,却没有看到什么问题.

unu*_*tbu 8

将所有类属性(例如value)放在顶部,在class Wizvar声明下面(在doc字符串下面,但在所有方法定义之上).如果始终将类属性放在同一位置,则可能不会经常遇到此特定错误.

请注意,如果您遵循上述惯例并且写了:

class Wizvar():
        value = None

    def select(self):
        self.selected = True

    def unselect(self):
        self.selected = False
Run Code Online (Sandbox Code Playgroud)

然后Python会引发一个IndentationError:

% test.py
  File "/home/unutbu/pybin/test.py", line 7
    def select(self):
                    ^
IndentationError: unindent does not match any outer indentation level
Run Code Online (Sandbox Code Playgroud)