関数またはクラス内から複数のグローバル変数を定義する簡単な方法を探しています。
明らかなオプションは次のことです。
global a,b,c,d,e,f,g......
a=1
b=2
c=3
d=4
.....
これは単純化された例ですが、本質的には特定の関数の入力に基づいて多数のグローバル変数を定義する必要があります。理想的には、値を更新したり、グローバル名を個別に定義したりすることなく、グローバル名とグローバル値の定義を処理したいと思います。
さらに明確にするため。
pythonこれに相当するもの(javascript)を探しています。
var a = 1
, b = 2
, c = 3
, d = 4
, e = 5;
申し分なく、私は自分自身であり、これは私にとっても大きな問題であり、質問の言い回しに関係していると思います(グーグルで同じように言いましたが、私がやろうとしていたことに関連する)。してはいけない理由がある場合は誰かが私を修正してください、しかし...
グローバル変数のリストを設定する最良の方法は、そのモジュールでそれらのクラスを設定することです。
class globalBS():
bsA = "F"
bsB = "U"
これらを参照することで、他の関数でそれらを呼び出したり、変更したりすることができます:
print(globalBS.bsA)
そのモジュールのすべての関数で「F」を出力します。この理由は、pythonはクラスをモジュールとして扱うため、グローバル変数のリストを設定するのに適しています。たとえば、I '現在、すべての関数で膨大なグローバルリストをコピーアンドペーストせずに実行しています。Word全体ではなく、1〜2文字のクラス名をできるだけ短くするだけです。
お役に立てば幸いです!
変数を展開するだけです:
global x, y, z
x, y, z = 4, 5, 6
globals()
組み込み関数は、現在のモジュールのグローバル変数を参照します。通常の辞書と同じように使用できます
globals()['myvariable'] = 5
print(myvariable) # returns 5
すべての変数に対してこれを繰り返します。
ただし、それは絶対にすべきではありません
それらが概念的に関連している場合、1つのオプションはそれらを辞書に入れることです:
global global_dictionary
global_dictionary = {'a': 1, 'b': 2, 'c': 3}
しかし、あなたの質問でコメントされたように、これはこの質問を生成した問題を処理するための最良のアプローチではありません。