有没有一种方法可以在一个别名下导入多个模块?

时间:2019-05-01 17:50:07

标签: python ros

我正在尝试使用一个别名导入多个库文件,而不使用 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中运行时导入错误。

谢谢。

2 个答案:

答案 0 :(得分:3)

否。

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

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

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

fn1()
fn2()
fn3()

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

答案 1 :(得分:0)

您也可以尝试(不推荐*):

from foo.a import fn1
from foo.b import fn2
from foo.c import fn3

fn1()
fn2()
fn3()