有人可以解释一下 Python 解释器中的这种行为吗:
from os import path # success
type(path) # <class 'module'>
from path import * # complains that no module called 'path' exists
type(os.path) # complains that the name 'os' is not defined, yet:
from os.path import * # works just fine
作为一个附带问题,我想知道是什么机制允许诸如“from os import path”之类的语句起作用,而 os 仍然是未定义的?os 不是在 from...import 时执行的,因此它应该被“称为”模块吗?我是否正确地说,将 os 排除在已知名称之外只是一种约定,旨在防止名称空间的“污染”带有未直接导入的符号(如“import os”)?