情况
我想要一个大致如下工作的模块:
# my_module.py
my_number = 17
from other_module import foo
my_object = foo(23)
但是,有一个问题:安装other_module会给某些用户带来问题,并且只有那些想要使用的人才需要my_object- 而这又只是一小部分用户。我想让那些不需要my_object安装other_module.
因此,我希望other_module仅当my_object从my_module. 换句话说,用户应该能够在没有安装的情况下运行以下命令other_module:
from my_module import my_number
到目前为止我最好的解决方案
我可以my_object通过包含导入的函数提供:
# in my_module.py
def get_my_object():
from other_module import foo
my_object = foo(23)
return my_object
然后,用户必须执行以下操作:
from my_module import get_my_object
my_object = get_my_object()
问题
有没有更好的方法来有条件地触发导入other_module?我最感兴趣的是让用户的事情尽可能简单。