python - 有没有办法在一个别名下导入多个模块?
问题描述
我试图在一个别名下导入多个库文件,而不使用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 中运行时出现导入错误。
提前致谢。
解决方案
不。
脚本中的一个符号不能同时引用多个模块。
无论如何,为不同的模块使用不同的名称是一种更简洁的方法。您可以尝试使用通配符导入让您的生活更轻松
from foo.a import *
from foo.b import *
from foo.c import *
fn1()
fn2()
fn3()
但这最终会污染您的命名空间。我不会推荐它。
推荐阅读
- gitlab-ci - GitLab CI/CD 中的合并请求 API 返回未经授权的错误
- json - jq 按日期排序错误 - jq:错误(在
:17): 无法遍历字符串 ("2020-12-11...) - c# - Unity - 函数在协程中出现意外行为
- javascript - 多个文件上传后firebase存储执行代码
- react-native - react-native-mapbox-gl / maps 如何更改样式?
- ios - GMSMapView 缓存的瓦片在缩放后保存在内存中,导致内存使用率高,App 性能不佳
- ios - Facebook Audience Network SDK 6.2.1 版无法更新
- godot - Godot:get_node:找不到节点:/root/MemoryGame
- android - 房间没有返回 livedata 的结果
- c++ - 在同一个字符串文字中包含 \n 字符是否比在额外的一组“<<”中更有效?