私はさまざまなクラスと関数を使用してソリューションを構築しています。これらはすべて、適切に機能するためにいくつかのグローバル定数にアクセスする必要があります。 Pythonにはconst
がないため、一種のグローバル定数を設定するためのベストプラクティスをどのように考えますか。
global const g = 9.8
だから私は上記のようなものを探しています
編集:どうですか:
class Const():
@staticmethod
def gravity():
return 9.8
print 'gravity: ', Const.gravity()
?
Pythonで定数を定義することはできません。それを行うための何らかのハックを見つけた場合、あなたはただみんなを混乱させるでしょう。
そのようなことをするために、通常あなたはただモジュールを持っているべきです-globals.py
たとえば、必要な場所にインポートする
一般的な規則は、変数を大文字とアンダースコアで定義し、変更しないことです。お気に入り、
GRAVITY = 9.8
ただし、namedtuple
を使用してPython)で定数を作成することは可能です。
import collections
Const = collections.namedtuple('Const', 'gravity pi')
const = Const(9.8, 3.14)
print(const.gravity) # => 9.8
# try to change, it gives error
const.gravity = 9.0 # => AttributeError: can't set attribute
namedtuple
については、ドキュメントを参照してください ここ