web-dev-qa-db-ja.com

Python-複数のグローバル変数を定義する最も簡単な方法

関数またはクラス内から複数のグローバル変数を定義する簡単な方法を探しています。

明らかなオプションは次のことです。

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;
12
Stephen Gelardi

申し分なく、私は自分自身であり、これは私にとっても大きな問題であり、質問の言い回しに関係していると思います(グーグルで同じように言いましたが、私がやろうとしていたことに関連する)。してはいけない理由がある場合は誰かが私を修正してください、しかし...

グローバル変数のリストを設定する最良の方法は、そのモジュールでそれらのクラスを設定することです。

class globalBS():
    bsA = "F"
    bsB = "U"

これらを参照することで、他の関数でそれらを呼び出したり、変更したりすることができます:

print(globalBS.bsA)

そのモジュールのすべての関数で「F」を出力します。この理由は、pythonはクラスをモジュールとして扱うため、グローバル変数のリストを設定するのに適しています。たとえば、I '現在、すべての関数で膨大なグローバルリストをコピーアンドペーストせずに実行しています。Word全体ではなく、1〜2文字のクラス名をできるだけ短くするだけです。

お役に立てば幸いです!

5
qui

変数を展開するだけです:

global x, y, z
x, y, z = 4, 5, 6
7
d3x

globals()組み込み関数は、現在のモジュールのグローバル変数を参照します。通常の辞書と同じように使用できます

globals()['myvariable'] = 5
print(myvariable) # returns 5

すべての変数に対してこれを繰り返します。

ただし、それは絶対にすべきではありません

0
blue_note

それらが概念的に関連している場合、1つのオプションはそれらを辞書に入れることです:

global global_dictionary
global_dictionary = {'a': 1, 'b': 2, 'c': 3}

しかし、あなたの質問でコメントされたように、これはこの質問を生成した問題を処理するための最良のアプローチではありません。

0
Martinbaste