2017-05-25 42 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模块。它有助于使路径描述符与不同的平台兼容,以及其他有用的东西。