导入python模块和别名子模块

卢卡斯·泰勒(Lukas Thaler)

python 3.7是否提供导入模块并仅对子模块进行别名的方法?假设我有一个以module模块命名的模块ridiculously_long_submodule_name,我想以此为别名short_submodule

有没有办法给子模块起别名,以便我可以通过调用它module.short_submodule我尝试了明显from module import ridiculously_long_submodule_name as module.short_submodule的语法错误。我真的很想避免在没有主模块名的情况下导入它,因为我的其余代码存在混淆问题

user2357112支持Monica

有混叠没有专门的语法module.ridiculously_long_submodule_namemodule.short_submodule,虽然你可以乱用模块的属性做手工,它会是一个坏主意。

as为避免名称冲突,使用import设置的别名应该在发生导入的作用域内是本地的,但是设置module.short_submodule为所需的子模块将是全局更改。程序中的所有代码都会看到它,因为除非您对真正着迷,否则__getattribute__就不会存在“本地”具有属性的对象。

甚至其中的代码module也会看到意外的新全局变量。如果module曾经的作者想使用该short_submodule名称,可能会导致真正的棘手冲突,但是即使如此,与其他类似的库混在一起也会使必须维护或调试您的代码的人感到困惑,包括12个月后的您现在。

做吧import module.ridiculously_long_submodule_name as submod不要尝试module.在别名上加上前缀。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档