提问人:bafly 提问时间:9/1/2023 最后编辑:bafly 更新时间:9/1/2023 访问量:30
如何在不提及模块名称的情况下从包中的一个模块调用函数?
how to call function from one of the module inside a package without mentioning modules name?
问:
我在里面.但为了清楚起见,我已将我的函数移到了单独的模块中callMe()
mypack.py
|mypack
|__init__.py
|mycalls.py
|...
但我想保留它们在改变之前的称呼:
import mypack
mypack.callMe()
有正确的方法可以做到这一点吗?
我知道这可以通过使用 import all 来完成,但这是一个好的做法吗?__init__.py
from .mycalls import *
答:
1赞
Gordian
9/1/2023
#1
虽然,我不太确定为什么这会有所帮助,或者在哪种用例中这可能是有益的,如果您坚持打电话,您可以简单地做:mypack.mycalls.*
mypack.*
import mypack.mycalls as mypack
然后,您可以执行以下操作:
mypack.callMe()
评论
0赞
Gordian
9/1/2023
@bafly没有真正的“适当”方法。在将 mycalls 重构到 mypack 后保留引用是不寻常的。如果您需要保留原始调用,那么我建议修改 import 语句,正如我上面指出的那样。如果你的 mypack 是一个小包,你仍然可以在 init 方法中执行此操作,这将清理你的 import 语句和调用。mypack.callMe()
评论