Python - 如何使用模块的别名导入其子模块?

时间:2012-02-03 17:04:00

标签: python module

我有一个很长的模块名称,我想避免在我的文档中多次输入它。我可以简单地做import long_ass_module_name as lamn并以这种方式调用它。但是,此模块有许多子模块,我希望导入和使用它们。

在这种情况下,我将无法编写import lamn.sub_module_1,因为python导入无法识别我为long_ass_module_name创建的别名。我怎样才能做到这一点?

我应该只是自动导入主模块__init__.py中的所有子模块吗?

2 个答案:

答案 0 :(得分:11)

导入子模块时,别名对象仍会更改

import my_long_module_name as mlmn
import my_long_module_name.submodule

mlmn.submodule.function()

import语句始终采用模块的全名。该模块只是一个对象,导入子模块将为该对象添加一个属性。

答案 1 :(得分:1)

将一个对象的所有成员导入当前命名空间的这种(非常不可推荐的)方法通过查找vars()字典起作用:

import my_bad_ass_long_module.bafd as b

# get __dict__ of current namespace
myn = vars() 
for k,v in vars(b).items():
  # populate this namespace with the all the members of the b namespace (overwriting!)
  myn[k] = v