Python只初始化变量一次,并在单独的文件中使用
常数.pyPython只初始化变量一次,并在单独的文件中使用,python,Python,常数.py import os from datetime import date dates = datetime.datetime.now().strftime("mon_%m_day_%d_%H_%M") out_dir = 'C:\\'+'_'+dates+os.sep 文件a.py from constants import * # Use out_dir 文件_b.py from constants import * # Use out_dir 在上面的代码中,我创
import os
from datetime import date
dates = datetime.datetime.now().strftime("mon_%m_day_%d_%H_%M")
out_dir = 'C:\\'+'_'+dates+os.sep
文件a.py
from constants import *
# Use out_dir
文件_b.py
from constants import *
# Use out_dir
在上面的代码中,我创建了一个名称中嵌入了当前日期和时间的目录。然后我将该文件导入两个单独的.py文件中。但是,我发现随着日期的改变,out_dir在文件_b.py中发生了变化。有没有办法解决这个问题
或者,是否有办法确定out\u dir何时发生变化?当Python导入模块时,模块中的所有代码只计算一次。因此,在运行脚本时,在导入constans.py的所有模块中,必须获得相同的out_dir值 你说你得到了不同的结果
打印“导入的常量”
import os
import datetime
`print "imported constants"`
dates = datetime.now().strftime("mon_%m_day_%d_%H_%M")
out_dir = 'C:\\'+'_'+dates+os.sep
如果您多次看到文本导入的常量,这意味着您在重新分配变量时遇到了重新加载()的问题,第一个
out\u dir
的引用与第二个out\u dir
的引用不同。这意味着,尽管感觉相同(因为名称相同),但它们在内部是两个不同(不相交)的内存位置
要解决此问题,只需将导入更改为:
import constants
像这样使用它们
constants.out_dir
这可以确保您查找模块
常量
,从而可以访问最后一次赋值。@user308827请看一看谢谢,有没有一种方法可以只初始化一次日期?谢谢,最终问题与同时使用多处理和全局变量有关。这没有反映在我的问题中,因为我不知道这会是一个问题。假设constants.py或file_a.py将文件写入目录,文件_b.py应该在几分钟内通过向后循环尝试查找该目录。您应该提供一个-import
中至少有一个输入错误,并且您提供的代码本身不会失败。我假设(您)对out\u dir
进行了一些更新,然后失败了。如果是这样的话,看看我的答案。