我注意到 python 如何处理模块名称的一种特殊行为。
如果我写:
import a.b
import a
然后尝试引用模块 ab 中的某些内容,它可以正常工作。
但是,如果我尝试一些稍微不同的东西:
import a.b
import c as a
然后尝试在模块 ab 中引用某些东西,我得到一个错误,说:
AttributeError:“模块”对象没有属性“b”
我知道显而易见的解决方案就是不使用两个我用相同名称引用的不同模块。但是,我仍然很好奇是什么导致了这种行为变化。为什么一个有效而另一个无效?