2012-11-29 60 views
21

如何在Python中的函數中聲明全局變量?是否可以在Python中的函數中定義全局變量

也就是說,它不必在之前聲明,但可以在函數之外使用。

+4

是的,這是可能的。你有什麼嘗試,什麼不起作用? –

+3

'全球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'函數應該可以解決這個問題。 –

相關問題