class Pacco:
STATES = ('Il pacco e` stato ordinato ma non ancora spedito',
'Il pacco e` stato spedito ma non ancora ricevuto',
'Il pacco e` stato ricevuto')
indice = 0
def __init__(self):
self.state = Pacco.STATES[0]
self._succ = Pacco.STATES[1]
self._prec = None
def next(self):
print(self.state)
@property
def state(self):
Pacco.indice += 1
self.state = Pacco.STATES[Pacco.indice]
self._succ = Pacco.STATES[Pacco.indice+1]
self._prec = Pacco.STATES[Pacco.indice-1]
在indice = 0
它给我错误Unexpected indent
,在Pacco.indice += 1
行它给我错误
Unindent does not match any outer indentation level
在接下来的3行,它给出了误差
Unresolved reference 'self'...
有人能告诉我为什么吗
首先,将所有预定义变量保留在
__init__
函数中。其次,self.state
变量需要是self._state
,因为存在同名函数。第三,参考@wjandrea's answer了解他关于制表符和空间格式的建议。代码应如下所示:您混合了制表符和空格。将所有制表符转换为空格(per PEP 8),语法工作正常
注意:堆栈溢出格式化程序将制表符转换为四个空格,因此您无法在文章中看到它,但如果您选中source,则可以看到它
您可以使用
autopep8
pip install autopep8
现在在终端中键入
autopep8 <yourfile.py>
,然后输入请注意,代码现在将以正确的方式格式化
相关问题 更多 >
编程相关推荐