2017-11-14 3 views
0

私は非常にPythonには新しく、いくつかの定数を定義する無限の方法は何ですか?ここでは定数をPythonに入れます

some_val = #... 
config_builder builder = ConfigBuilder() 
builder.add_param('PROJECT_RELATED_KEY', some_val) 

どここの'PROJECT_RELATED_KEY'を置くために、次のよう

class ConfigBuilder: 

    def add_param(self, key, value): 
     #... 
    def build(): 
     #... 

は今、私は別のモジュールでこれを使用したい:私は、次のクラスがありますか?別のモジュールでそれをインポートしますか?それとも、グローバル変数として入れる?

+3

にです好きなことの問題は、あなたが言うことはありませんか?あなたはどちらかを行うことも、どちらもすることもできません。 –

+0

@cᴏʟᴅspy私はこれを尋ねました。なぜなら、Pythonは私にとってもっと「従来の」言語だと思われるからです。たぶんそれのためのいくつかのコンベンションもあります。 –

+2

例:https://stackoverflow.com/a/18225046/4909087 –

答えて

1

設定を保存する必要があるという絶対的な約束はないということです。プロジェクトの配置に関しては、多くの柔軟性があります。以下は、自分の設定をどこに置くかを決める際に考慮する可能性のあるいくつかの例です。

プロジェクトに、バージョン管理で望ましくないいくつかの重要なパラメータが含まれている可能性がある場合は、それらを環境に配置し、環境変数でアクセスすることができます。

import os 
print os.environ['HOME'] 

もしそれらがまったく敏感でないなら、Djangoがやることを実行してsettings.pyファイルを作成する可能性があります。あなたもパッケージとしてプロジェクトを設定して、パッケージとしてのプロジェクトの設定に関する詳細情報については

from . import settings 
print(settings.SOME_VALUE) 

を行うことができ、この

# myproject/settings.py 
SOME_VALUE = 'SomeConfigurableValue' 
FOO = 'bar' 
PROJECT_RELATED_KEY = 'bestkeyever' 

# myproject/builder.py 
from myproject.settings import SOME_VALUE 
print(SOME_VALUE) 

のようなものは、以下を参照してください How to fix "Attempted relative import in non-package" even with __init__.py

関連する問題