[英]Strange indentation in Python code
我收到了一些Python代碼來維護。 只有當我修改內部for循環的內部時,它怎么可能工作以及為什么它會與unindent錯誤崩潰?
for m in range(len(Model)):
if param==1:
m=m-1
parFlag = 0
for s in range(len(PSets)):
if Parameter.lower() in self._Sets._P_ModelVars[Model[m]][PSets[s]]:
parFlag = 1
當我在這里輸入它時,它看起來更奇怪:
我認為它可能與標簽有關,但我不太了解它們,除非我盡可能避免它們。
實際上,代碼混合了標簽和空格:
>>> from pprint import pprint
>>> pprint('''\
... for m in range(len(Model)):
... if param==1:
... m=m-1
...
... parFlag = 0
... for s in range(len(PSets)):
... if Parameter.lower() in self._Sets._P_ModelVars[Model[m]][PSets[s]]:
... parFlag = 1
... '''.splitlines())
[' \t\tfor m in range(len(Model)):',
'\t\t if param==1:',
'\t\t \tm=m-1',
'',
' \t parFlag = 0',
' \t for s in range(len(PSets)):',
'\t if Parameter.lower() in self._Sets._P_ModelVars[Model[m]][PSets[s]]:',
'\t parFlag = 1']
注意\\t
和\\t
所有組合 每行開頭的字符。
一個好的文本編輯器將允許您用空格替換選項卡,還可以設置創建新縮進時應使用的樣式。 Python樣式指南建議您只使用空格。
您可以通過使用-tt
命令行開關運行代碼來檢測空格和制表符的混合位置:
python -tt yourscript.py
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.