2个python文件和1个main.py传递变量在这些文件之间

时间:2016-05-13 22:52:05

标签: python variables

为了为我的项目创建一个清晰的结构,我尝试将不同的部分保存在不同的file.py中。我使用一个main.py来一起启动脚本(线程)。现在我想将一个datetime.datetime变量放到另一个脚本中。

例如:

#main.py
import file1
import file2
if __name__=='__main__':
    p1 = Process(target = file1.a)
    p1.start()
    time.sleep(1)
    p2 = Process(target = file2.b)
    p2.start()

#file1.py
def a():
    global t1
    t1 = datetime.datetime(example date)

#file2.py
def b():
    print(t1)

我得到的错误如下:

Traceback (most recent call last):
File "location\main.py", line 7, in <module>
import test2
File "location\file2", line 3, in <module>
b()
File "location\file2", line 2, in b
print(t1)
NameError: name 't1' is not defined

我做错了什么?导入文件2中的file1似乎也不起作用。我应该将所有脚本放在一个文件中吗?

如果我错过任何信息,请问:)谢谢!

2 个答案:

答案 0 :(得分:2)

正如追溯所说,错误来自global t1未定义的事实。

如果您发布了整个代码,那么错误就在

#file1.py
def a():
    global t1 # Python interpreter can not find this variable.
    t1 = datetime.datetime(example date)

但是,如果您想在进程之间共享资源,请考虑multiprocessing模块。

答案 1 :(得分:0)

试试这个:

t1=0
def a():
    t1=datetime.datetime(example date)

在方法定义之外设置t1 可以在导入文件时使其可访问(显然file1.t1)。