web-dev-qa-db-ja.com

Pythonの関数でグローバル変数を定義することは可能ですか?

Pythonの関数でグローバル変数を宣言するにはどうすればよいですか?

つまり、事前に宣言する必要はなく、関数の外部で使用できます。

37
MrROY

そうだね。でも何で?

def a():
    globals()['something'] = 'bob'
31
Jon Clements
def function(arguments):
    global var_name
    var_name = value #must declare global prior to assigning value

これは、同じプログラム内にあるかどうかに関係なく、どの機能でも機能します。

これを使用する別の方法を次に示します。

def function():
    num = #code assigning some value to num
    return num

注:returnビルトインを使用すると、プログラムが終了したかどうかに関係なく、プログラム(または関数)が自動的に停止します。

次のような関数でこれを使用できます。

if function()==5 #if num==5:
    #other code

これにより、関数の外部で変数を使用できます。必ずしもグローバルに宣言する必要はありません。

さらに、ある関数から別の関数に変数を使用するには、次のようにします。

import primes as p #my own example of a module I made
p.prevPrimes(10) #generates primes up to n
for i in p.primes_dict:
    if p.primes_dict[i]: #dictionary contains only boolean values
        print p.primes_dict[i]

これにより、グローバル変数またはreturnビルトインを使用せずに、別の関数またはプログラムで変数を使用できます。

11
Rushy Panchal