我在项目file1.py和file2.py中有两个python文件。 运行代码后,file1中的python字典获取值。在此之前,它是空的。我想要那个字典在file2中。
我试图通过from file1 import dictionary
导入该词典,
但它的输出是空白字典。
file1.py
def function(f_act)
some code that adds values to dictionary
return f_act
if __name__ == '__main__':
f_act = defaultdict(dict)
f_act = function(f_act)
file2.py
import file1
if __name__ == '__main__':
print file1.f_act
如果我单独运行file1,则字典将输出值,但是在导入时,字典为空白。我还尝试将if __name__ == '__main__':
更改为if __name__ == '__file1__':
。打印时词典仍然为空白。
最初,字典是空白的。字典应打印在file1的函数中分配的值。
答案 0 :(得分:2)
我假设file2.py
是您的主要模块(将从命令行运行的模块)。然后,您应该从if __name__ == '__main__':
中删除file1.py
语句。您的file1.py
应该只包含字典,或者应包含用于填充字典的函数。
# file1
def populate_dictionary(d):
pass
,然后从file2
中使用以下命令导入该函数:
from .file1 import populate_dictionary
if __name__ == '__main__':
f_act = default_dict(dict)
print(populate_dictionary(f_act)
另一种解决方案是在file1
内创建字典并将字典导入file2
:
from .file1 import f_act