【发布时间】:2019-08-08 18:25:59
【问题描述】:
假设我有以下 Python 脚本script.py:
a = 1
b = 10
for i in range(b):
a += 1
print(a)
我知道我可以在这个script.py 中使用globals() 来显示命名空间:
{'__file__': 'counter.py', '__doc__': None, 'i': 9, '__spec__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000027C8D9402E8>, '__name__': '__main__', '__cached__': None, 'b': 10, 'a': 11, '__package__': None, '__builtins__': <module 'builtins' (built-in)>}
我想知道您是否可以在script.py 之外以某种方式模仿globals()?换句话说,我想运行other_script.py 并查看script.py 的globals() 输出。 import counter 有用吗?
编辑:如果可能,script.py 的 globals 输出是否可以在 for 循环中以 i 的每个增量进行更新?
【问题讨论】:
-
你能提供更多的部署细节吗?
script.py和other_script.py是分别启动(即作为完全独立的进程)还是您打算让一个启动另一个?作为完全精通的进程,我不相信你应该能够做很多事情,但是如果一个是另一个使用 pythons 多处理模块的子进程,你可能会有一些选择。 -
script.py和other_script.py是完全独立的进程。 -
这可能是一个依赖于操作系统的问题,因为您希望一个进程访问另一个进程的内存。有很多方法可以做到这一点,但很少有方法是简单的。我的建议是不要重新发明轮子:使用数据库(一个简单的 k/v 存储应该像 redis 一样好)或在你的主机脚本中设置一个简单的 Http 服务器。
标签: python import namespaces globals