2017-05-25 57 views
1

variables.py進口變量在python的功能

path="c:/something" 
path2="c:/somethng2" 
path3="c:/something3" 
.... 

main.py

def run(): 
    from variables import * 

... 

我有這樣的錯誤:

SyntaxError: import * is not allowed in function 'run' because it contains a nested function with free variables

+0

'import variables'比使用'variables.path,variables.path2,....' –

回答

2
import variables as v 
path=v.path 

這應該從其他文件的路徑變量
希望這有助於!

+0

if if mypath1 = variables.mypath1不幸的是我仍然有這樣的錯誤:NameError:全局變量名未定義 – Lucas

+0

可能是你仍然在做'從變量導入*'以下工作對我來說'進口變量 path = variables.path 打印路徑' – gowtham

+0

也許是因爲使用運行功能Tkinter使用... – Lucas

1

你應該對全局變量非常小心。避免使用全局變量,在代碼中的不同位置更新它們被認爲是一種更好的做法。不過,如果這些只是常數,那應該不成問題。通常我做這種方式:

variables.py

MY_PATH1 ="c:/something" 
MY_PATH2 ="c:/somethng2" 
MY_PATH3 ="c:/something3" 

main.py

from variables import * 

def run(): 
    print(MY_PATH1) 
    ... 

如果您正在使用路徑字符串時,您可能還需要採取看看documentationos.path模塊。它有助於使路徑描述符與不同的平臺兼容,以及其他有用的東西。