Python 将pkg.sub导入为其他.sub
我没有这个问题,但当我在处理一个相关问题时,我想到了这个问题。让我们有:Python 将pkg.sub导入为其他.sub,python,python-import,Python,Python Import,我没有这个问题,但当我在处理一个相关问题时,我想到了这个问题。让我们有: logging = 'something' # bad naming decision import logging as lg # using a different name 如何将logging.config导入为lg.config,而不覆盖原始的logging 经过一些测试,我发现: import logging.config as _ # any unused name 但这真的正确吗?有更好的解决方
logging = 'something' # bad naming decision
import logging as lg # using a different name
如何将logging.config
导入为lg.config
,而不覆盖原始的logging
经过一些测试,我发现:
import logging.config as _ # any unused name
但这真的正确吗?有更好的解决方案吗?设置别名后,仍然需要使用完整路径导入,但仍然可以使用别名调用子模块:
import my_module as mm
import my_module.sub_module
mm.sub_module
像这样做怎么样
import logging as lg
from logging import config
在此之后,config
和lg.config
请参阅logging.config
In [3]: config
Out[3]: <module 'logging.config' from 'C:\\Anaconda3\\lib\\logging\\config.py'>
In [4]: lg.config
Out[4]: <module 'logging.config' from 'C:\\Anaconda3\\lib\\logging\\config.py'>
[3]中的:配置
出[3]:
在[4]中:lg.config
出[4]:
第二次导入将覆盖“我的模块”。问题是如何避免它。将日志记录的值指定给临时变量,并在导入后重新分配它?在这种特殊情况下,您应该能够引用lg.config
,而无需import logging.config
语句,因为您已经为logging
定义了lg
的别名。我遗漏了什么吗?@PaWaimport logging
没有拉取config
模块(至少在我的Python版本上)。OTOH导入操作系统
还导入操作系统路径
。我认为这取决于实现,每个子模块都应该显式导入。@MaartenFabré是的,这将使代码可读性好,我的意思是优雅