首页 > 解决方案 > 有没有办法在一个别名下导入多个模块?

问题描述

我试图在一个别名下导入多个库文件,而不使用init .py 文件(因为它显然不受 ROS 支持)。

例子:

假设我们有以下文件:

foo/
   __init__.py # This file is empty, used to categorize foo as a package.
   a.py
   b.py
   c.py
bar/
   example.py

a、b 和 c 都包含我在示例中需要的不同功能,因此我将它们导入

#example.py

from foo import a, b, c

a.fn1()
b.fn2()
c.fn3()

这可行,但是有什么方法可以将它们全部分组到一个别名下吗?像这样:

#example.py

from foo import [a, b, c] as foo

foo.fn1()
foo.fn2()
foo.fn3()

同样,我知道这可以通过在init .py 下导入它们来完成,但由于我们的库旨在在 ROS 下工作,因此我们目前无法这样做,而不会在 ROS 中运行时出现导入错误。

提前致谢。

标签: pythonros

解决方案


不。

脚本中的一个符号不能同时引用多个模块。

无论如何,为不同的模块使用不同的名称是一种更简洁的方法。您可以尝试使用通配符导入让您的生活更轻松

from foo.a import *
from foo.b import *
from foo.c import *

fn1()
fn2()
fn3()

但这最终会污染您的命名空间。我不会推荐它。


推荐阅读