本站资源收集于互联网,不提供软件存储服务,每天免费更新优质的软件以及学习资源!

Python项目中_如何从子模块优雅地导入上一级模块?

网络教程 app 1℃

Python项目中_如何从子模块优雅地导入上一级模块

优雅地导入上一级模块

在python项目中,如何从子模块优雅地导入上一级模块?本文将探讨这个问题,并提供一种优雅且简洁的解决方案。

给定以下文件结构:

config.pymain.py└──folder └──submodule.py

问题在于,要在main.py和submodule.py中使用config.py中的配置参数args。在main.py中,我们可以使用以下语句导入args:

# main.pyfrom config import args

然而,在submodule.py中,从config.py导入args会报错:

valueerror: attempted relative import beyond top-level package

传统的解决方法是将上一级目录添加到sys.path中:

# submodule.pyimport syssys.path.append(‘..’)

但这种方法显得有些冗长和繁琐。有没有更优雅的方法来实现这一目标?

答案是使用importlib包。importlib提供了import_module()函数,可通过模块名称动态导入模块。

在submodule.py中,我们可以使用以下语句导入config模块:

# submodule.pyimport importlibconfig = importlib.import_module(‘..config’)args = config.args

这种方法的好处在于:

无需修改sys.path。可以在运行时动态导入模块。不依赖于当前工作目录。

以上就是Python项目中,如何从子模块优雅地导入上一级模块?的详细内容,更多请关注范的资源库其它相关文章!

转载请注明:范的资源库 » Python项目中_如何从子模块优雅地导入上一级模块?

喜欢 (0)