导入python模块和别名子模块

问题描述 投票:1回答:1

python 3.7是否提供了一种导入模块和别名的方法?假设我有一个名为module的模块,带有子模块ridiculously_long_submodule_name,我想用short_submodule别名

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

python python-3.x
1个回答
1
投票

没有用于将module.ridiculously_long_submodule_name别名为module.short_submodule的专用语法,虽然你可能会混淆模块的属性来手动执行,但这不是一个坏主意。

使用import as设置的别名应该是导入发生范围的本地,以避免名称冲突,但将module.short_submodule设置为您想要的子模块将是一个全局更改。程序中的所有代码都会看到它,因为除非你对__getattribute__感到非常疯狂,否则没有“本地”具有属性的对象。

甚至module中的代码也会看到意想不到的新全局变量。如果module的作者想要使用short_submodule名称,这可能会导致真正令人讨厌的冲突,但即使没有发生这种情况,与这样的其他库混淆将会混淆那些必须维护或调试代码的人,包括你的12几个月后。

只是做import module.ridiculously_long_submodule_name as submod。不要试图在别名上加上module.前缀。

© www.soinside.com 2019 - 2024. All rights reserved.