web-dev-qa-db-ja.com

python)でグローバルconst変数を設定する方法

私はさまざまなクラスと関数を使用してソリューションを構築しています。これらはすべて、適切に機能するためにいくつかのグローバル定数にアクセスする必要があります。 Pythonにはconstがないため、一種のグローバル定数を設定するためのベストプラクティスをどのように考えますか。

global const g = 9.8 

だから私は上記のようなものを探しています

編集:どうですか:

class Const():
    @staticmethod
    def gravity():
        return 9.8

print 'gravity: ', Const.gravity()

8
gen

Pythonで定数を定義することはできません。それを行うための何らかのハックを見つけた場合、あなたはただみんなを混乱させるでしょう。

そのようなことをするために、通常あなたはただモジュールを持っているべきです-globals.pyたとえば、必要な場所にインポートする

12
John La Rooy

一般的な規則は、変数を大文字とアンダースコアで定義し、変更しないことです。お気に入り、

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については、ドキュメントを参照してください ここ

7
chhantyal