2012-07-08 111 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