为了为我的项目创建一个清晰的结构,我尝试将不同的部分保存在不同的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似乎也不起作用。我应该将所有脚本放在一个文件中吗?
如果我错过任何信息,请问:)谢谢!
答案 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
)。