2012-11-29 13 views
21

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

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

+4

はい、可能です。あなたは何を試しましたか、何がうまくいかなかったのですか? –

+3

'global my_var'、完了です。 –

答えて

23

はい、なぜですか?

def a(): 
    globals()['something'] = 'bob' 
+7

'global something'を実行すると、グローバル変数が存在しなければ新しいグローバル変数が作成されます。 –

+2

暗黙的ではなく明示的な... - これは悪い考え方として、より明白になります。 –

+2

@ F3AR3DLEGEND * globals my_var *は関数の外部で使用できます。 – MrROY

5
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ビルトインです。

+1

それはグローバルではありませんか?私はそれがモジュール全体であると思います。 –

+0

ああ、それはモジュール全体だけです。しかし、 'return'関数を使うとそれを修正するはずです。 –

関連する問題