gpt4 book ai didi

python - 使模块在全局范围内可用

转载 作者:太空宇宙 更新时间:2023-11-04 00:06:52 24 4
gpt4 key购买 nike

我正在尝试让我的模块在全局范围内可用

文件系统结构

main.py
module_static.py
folder/module_dynamic.py # this is example, but imagine 100s of modules

主.py

print('Loading module_static')
import module_static
module_static.test()

# Trying to make module_static available globally
globals()['module_static'] = module_static
__all__ = ['module_static']

print('Loading module_dynamic')
import sys
sys.path.append('./folder/')
import module_dynamic
module_dynamic.test()

module_static.py

def test():
print(' -> This is module_static')

module_dynamic.py

def test():
print(' -> This is module_dynamic')
module_static.test()

运行 ma​​in.py 创建以下执行流程 ma​​in.py -> module_dynamic.py -> module_static.py

enter image description here

如你所见:

  • 模块加载正常
  • 然而,尽管试图使 module_static全局可用,它不工作 module_dynamic.py 抛出错误提示 module_static不存在

我怎样才能制作module_static.py可用 module_dynamic.py (理想情况下无需在 module_dynamic.py 中编写任何额外代码)?

最佳答案

不是说这是好的做法,但你可以做到

主.py

import builtins
import module_static
builtins.module_static = module_static

这应该允许您从任何地方使用 module_static

有关内置的更多信息:How to make a cross-module variable?

关于python - 使模块在全局范围内可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53833882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com