PEP8およびPythonコミュニティの標準はを使用することALL_CAPS_CONSTANTS
です。これは、C、Java、Perl、PHP、Python、bash、その他のプログラミング言語およびシェル環境で何十年も使用されている一般的な視覚的手がかりです。しかし、現代のオンライン用語では、すべてのキャップは叫びを意味します。そして叫びは失礼です。
ただし、Pythonはについて一貫性がありませんALL_CAPS_CONSTANTS
。JavaScriptにはありますがMath.PI
、Pythonにはありmath.pi
ます。認識可能な、または永続的な定数はπよりもありません。またはsys.version_info
、実行しているPythonのバージョンを検討してください。プログラムの寿命全体にわたって100%の定数- 定義した定数PORT
またはMAX_ITERATIONS
それ以上の定数。それともどうsys.maxsize
?プラットフォームの最大ネイティブ整数値は、1つまたは2つのプログラムの実行だけでなく、ハードウェアの寿命にわたって一定です。
これらの定数場合- πと宇宙の基本的な定数である電子のようないくつかを含めて、すべて永遠に渡って変化しません-場合、彼らは小文字、よく...そうすることができます他の定数とすることができます。選んでいいですよ。
PEP8はスタイルガイドであることに注意してください。ガイドラインではなく、法律。ガイドラインは、多くの場合、Pythonの標準ライブラリでも違反します。そして、もう1つのコアPythonガイドラインであるPEP20(別名「The Zen of Python」)を引用します。
- いよりも美しい
- 可読性カウント
- 実用性は純度よりも優れています。
実用的な注意として、プログラムが格子状にYELLY_CONSTANT
なりSHOUTY_PARAMETER
始めると、一般に全キャップ定数はプラトンの理想に耐えることではなく、プログラムのパラメーターが実行されることを覚えておくと役立ちます。、、またはについてPORT
はSITENAME
、本当に一定のものはなくNUMRUNS
、スタンドアロンプログラムグローバルとして管理する必要はありません。たとえば、これらはグローバルにアクセス可能なプログラムパラメーターのバンドルとして辞書にドロップできます。
config = {
'port': 80,
'sitename': "Bubba's Blog",
'numruns': 100,
}
Pythonには、使用する必要性を軽減する優れたキーワードパラメーター受け渡し機能もありますAPPARENTLY_ANGRY_GLOBAL_VARIABLES
。
def process_data(sitename, port=80, numruns=100):
...
process_data("Bubba's Blog")
実際には、これらの値の多くは、構成ファイル、OS環境変数、コマンドライン引数、または制御原理/パターンの反転を満たす他のソースから読み取られます(またはそうする必要があります)。しかし、それは別の日の大きな話です。