2015-04-02 126 views
-1

我看到很多类似的问题,但没有什么与我的问题完全一样,所以我完成了我的研究。获取函数内全局变量的值

我想从我的主函数install中的主文件访问这个变量operatingSystem。现在,我知道我可以通过install(operatingSystem)来通过它,但我有10个其他变量,并且我不想将它们全部传递出去。

变量将在该文件作为global operatingSystem的开始定义,那么以后分配一个字符串(osxwin,或linux)当我的主文件中获取的操作系统。

但是,当我尝试在我的install函数中使用operatingSystem时,它只是错误。我需要在我的函数里面把它叫做global operatingSystem吗?还是我必须做别的事情?

+1

你究竟是怎么做的?“试着用'operatingSystem'”*?你能比*“只是错误”*更具体吗?请参阅http://stackoverflow.com/help/mcve – jonrsharpe 2015-04-02 10:37:49

+0

'global operatingSystem',就是这样,IMO。 – pnv 2015-04-02 10:38:19

+2

@pnv'全球'几乎从来没有*“方式”*;如果你有很多参数,可以考虑重构一个参数对象:http://sourcemaking.com/refactoring/introduce-parameter-object – jonrsharpe 2015-04-02 10:39:59

回答

1

全局变量可以在函数中自由读取。要修改它,您需要使用“全局”关键字。 It's all there.这就是如果我正确理解你的问题。

globvar = 0 

def set_globvar_to_one(): 
    global globvar # Needed to modify global copy of globvar 
    globvar = 1 

def print_globvar(): 
    print globvar  # No need for global declaration to read value of globvar 

set_globvar_to_one() 
print_globvar()  # Prints 1 
+0

谢谢,主文件中的'global'声明导致了这个问题。 – STFLightning 2015-04-03 10:07:54

0

我没有得到实际你是什么expecting.Assuming

main.py

operatingSystem = "linux" 

yourfile.py

from main import operatingSystem 
>>>operatingSystem 
"linux" 

这是没有必要的global here.So

install(operatingSystem) #is possible