从Python

时间:2017-02-22 09:10:38

标签: python global-variables parameter-passing

我想分配一个"外部"从命令行参数的独立Python程序中的全局变量的值,让我的函数操纵它(请忽略一般不鼓励使用全局变量的事实)。我尝试过如下:

def my_function():
    global global_var
    global_var+=1

def main(argv): 

    global_var = sys.argv[1]
    my_function()

if __name__ == "__main__":
    main(sys.argv)

但由于以下原因,它无法正常工作:

NameError: global name 'global_var' is not defined

问题出现在global global_var的{​​{1}}行中,尽管有明确的资格认证,但该函数似乎无法将其识别为全局。我想这是因为我的my_functionglobal_var的定义之前并不存在。但我无法在代码开头(my_function()之前)定义global_var,因为my_function()应该站在最后,main()解析程序参数。正确?

0 个答案:

没有答案