2012-07-08 103 views
0

我有一個文件,f.py如何在函數中定義全局變量?

def func(): 
    if 'x' not in globals(): 
     setattr(f, 'x', 0) 
    global x 
    x += 10 
    print x 

,我在一個交互式會話:

>>> import f 
>>> f.func() 
Traceback (most recent call last): 
[...] 
NameError: global name 'x' is not defined 

我應該如何修改func定義x如果不是已經確定?

回答

3
def func(): 
    global x 

    if 'x' not in globals(): 
     x = 0 

    x += 10 

    print(x) 
+0

這不是工作'NameError:全局名稱 'X' 是沒有定義 ' – krzyhub 2012-07-08 18:31:06

+1

@Cris:它的工作對我來說完全沒有問題:http://codepad.org/U4UkFRt9。 (我意識到這不是完全相同的情況,但是本地測試驗證了這樣的結果。)您能否準確地提供您正在測試的代碼,以及您的Python版本? – 2012-07-08 18:34:08

+0

好的,現在好了。謝謝。 – krzyhub 2012-07-08 18:37:20