一个文件中的全局变量在另一个文件中未定义

时间:2020-10-28 12:13:37

标签: python

这与我的上一个问题有部分联系。我导入了一个名为current_user的对象。我将其从文件1中名为guy.py的2个变量中传递,变量为log_name和log_pass。这2个变量是2个条目的输入,它们是全局的。我制作了一个函数来导入这些全局变量以及gui.py中包含的所有其他全局变量。我仍然对为什么仍未定义全局变量感到困惑。

这是我用来导入对象current_user的函数:

def objects():
global log_name,log_pass
current_user = User(log_name,log_pass,score=0)
return current_user

这是我尝试用来导入全局变量的函数:

def global_vars():
global main_window,reg_window,name_entry,pass_entry,log_name_entry,log_pass_entry,log_name,log_pass,c,conn,query,data

我得到的错误是:

current_user =用户(log_name,log_pass,分数= 0) NameError:名称“ log_name”未定义

1 个答案:

答案 0 :(得分:0)

据我所知,您必须使用.py文件:一个叫做guy.py,另一个我称为test.py:

因此,如果要将值从guy.py导入到test.py。首先在guy.py中定义变量,如下所示:

log_name = yourvalue
log_pass = yourvalue

然后转到test.py(它必须位于同一目录(为了简单起见))并导入:

from guy import log_name, log_pass

现在您可以在test.py中使用这些值,并且每当在guy.py中更改值时,它将在test.py中更改。同样,也没有必要使价值观成为全球性的(我认为是这种情况)