[解決済み] settings "モジュールで定数を作成する?
質問
私はPythonに比較的新しいです。私は、様々なアプリケーション固有の定数が格納される"settings"モジュールを作成しようとしています。
以下は、私がどのように私のコードをセットアップしたいかです。
設定.py
CONSTANT = 'value'
script.py
import settings
def func():
var = CONSTANT
# do some more coding
return var
Pythonのエラーが表示されます。
global name 'CONSTANT' is not defined.
私は Django のソースコードで、彼らの
settings.py
ファイルには、私と同じような名前の定数があります。それらをどのようにスクリプトにインポートし、アプリケーションを通して参照することができるのか、私は混乱しています。
EDIT
たくさんのご回答ありがとうございました 下記を試してみました。
import settings
print settings.CONSTANT
同じエラーが表示されます
ImportError: cannot import name CONSTANT
どのように解決するのですか?
最も簡単な方法は、settingsをモジュールにすることです。
(settings.py)
CONSTANT1 = "value1"
CONSTANT2 = "value2"
(consumer.py)
import settings
print settings.CONSTANT1
print settings.CONSTANT2
Python モジュールをインポートするとき、そこから取得する変数の前にモジュール名を付けなければなりません。もし、与えられたファイルの中でそこから使いたい値が正確に分かっているならば と で、実行中に変更される心配がない場合、次のようにすることができます。
from settings import CONSTANT1, CONSTANT2
print CONSTANT1
print CONSTANT2
というのがありますが、私はこの最後のものには夢中にならないほうがいいと思います。これは、あなたのコードを読む人が、値がどこから来ているのかを見分けることを難しくします。そして、他のクライアントモジュールが値を変更した場合に、それらの値が更新されることを防ぎます。最後の方法としては
import settings as s
print s.CONSTANT1
print s.CONSTANT2
これにより、入力の手間が省け、更新が伝搬され、読者は
s
が設定モジュールからのものであることを読者に覚えてもらうだけです。
関連
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み] フルパスでモジュールをインポートするには?
-
[解決済み] リスト内包型辞書の作成
-
[解決済み] Pythonで複数行のコメントを作成する方法はありますか?
-
[解決済み] Pythonで定数を作成するにはどうすればよいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み] Python Empty Generator 関数
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] 範囲指定された浮動小数点数のランダムな配列を生成します。
-
[解決済み] Cythonのコードを含むPythonパッケージはどのように構成すればよいのでしょうか?
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?
-
[解決済み] Python ファイルに長い定数リストをインポートする