python 3.7是否提供了一种导入模块和别名的方法?假设我有一个名为module
的模块,带有子模块ridiculously_long_submodule_name
,我想用short_submodule
别名
有没有办法给子模块别名,所以我可以通过module.short_submodule
调用它?我尝试了明显的from module import ridiculously_long_submodule_name as module.short_submodule
导致语法错误。我真的想避免在没有主模块名称的情况下导入它,因为我的其余代码存在混淆问题
没有用于将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.
前缀。