我是一名经验丰富的程序员,但在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方法时,变量都会被破坏,而不是只变一次.我多次盯着这看,却没有看到什么问题.
将所有类属性(例如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)
| 归档时间: |
|
| 查看次数: |
230 次 |
| 最近记录: |