1

GraphServerからコードを読んでいます。そして、奇妙なインデントを持つこの関数があります(下から数えて5行目、下から数えて1行目):

ここに画像の説明を入力してください

その5番目から下の行にはタブ文字があり、vimは4のインデントを表示するように設定されています。下のyield行にはタブと4つのスペースがあります。他のすべての行はすべてスペースで始まります。

このようなコードは矛盾を引き起こし、Pythonでは問題になると思いました。しかし、コードは正常に実行されているようです(正しく実行されているかどうかはわかりませんが、おそらく実行されます)。Pythonは、1つのタブが8つのスペースに等しいと言って、そのように解釈しますか?Python2.6を実行しています。

4

2 に答える 2

2

はい、Pythonはタブを(最大)8スペースと見なします。つまり、8文字ごとにタブストップがあります。そのため、奇妙にインデントされたyield行は、Python-visionで実際にその周りの他の行と整列します。

これは、タブとスペースが混在している場合の危険です。-ttコマンドラインオプションを指定してPythonを呼び出し、これらの種類のファイルでエラーをスローするようにします。

于 2012-06-20T04:51:24.820 に答える
1

タブとスペースを混在させないでください!これが一般的なルールです...

于 2012-06-20T04:51:36.763 に答える