私は、定数のような何らかの種類の定義済みのシンボルを使うことができるところで、Pythonが頻繁に文字列を使用することに気付きました。例えば、からコードのサンプルを言い換えする:定義されたシンボル(定数)よりも文字列が優先されるのはなぜですか?
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
ではなく、開発者が、例えば、一定のようなシンボルを定義しなかった理由ストリング'store_const'
の使用を必要としますArgumentParser.STORE_CONST
?
コードエディタはモジュールでそれらを簡単に見ることができ、コード補完のための提案として使用することができます。また、文字列のタイプミスによってエラーが発生することはありませんが、定義されたシンボルのタイプミスはおそらく発生します。私はこの方法でPythonの文字列を使った例をいくつか見てきましたが、JavaやPHPのような他の言語ではあまり一般的ではありません。
おそらく、逃亡者またはGuido自身。それ以外では、あなたはただ意見を得るつもりです。 –
定数名を間違えた場合、 'enum'のような構文はJavaやC++のような言語でコンパイルエラーを出しますが、Pythonで既成の定数を提供しても、実行時にエラーが発生します。そのコードパス。 IOW:ランタイムチェックされた文字列とランタイム定義のシンボルのランタイムルックアップを比較しているので、大きな違いはありません。 –
(これは、Pythonの標準ライブラリでさえも、これは主に好みの問題であるように見えることに注意してください。 're'モジュールを調べると、すべてのregexpフラグは' re'モジュールのトップレベル定数です)。 –