Python 模块(名称)做什么?

Python 模块(名称)做什么?,python,Python,我对这一行代码感到困惑: email = Module(__name__) 我猜这只是创建一个别名来引用我所在的模块?如果没有,那么这有什么作用 在中,模块的名称(作为字符串)可用作全局变量\uuuuuu name\uuuuu的值 但是email=Module(\uuuu name\uuuu)将引发NameError:(未定义名称“Module”)。如果您定义了名称模块,例如使用itertools(\uuu name\uuuu),因为它是不可调用的,它会引发一个类型错误 因此,\uuuuuu

我对这一行代码感到困惑:

email = Module(__name__)
我猜这只是创建一个别名来引用我所在的模块?如果没有,那么这有什么作用

在中,模块的名称(作为字符串)可用作全局变量
\uuuuuu name\uuuuu
的值

但是
email=Module(\uuuu name\uuuu)
将引发
NameError
:(未定义名称“Module”)。如果您定义了名称
模块
,例如使用
itertools(\uuu name\uuuu)
,因为它是不可调用的,它会引发一个
类型错误

因此,
\uuuuuu name\uuuuuu
是一个模块属性,您不能单独传递它

您还可以在
dir()
函数结果中找到
\uuuu name\uuuu
,该函数用于查找模块定义的名称

>>> dir(itertools)
['__doc__', '__name__', '__package__', 'chain', 'combinations', 'combinations_with_replacement', 'compress', 'count', 'cycle', 'dropwhile', 'groupby', 'ifilter', 'ifilterfalse', 'imap', 'islice', 'izip', 'izip_longest', 'permutations', 'product', 'repeat', 'starmap', 'takewhile', 'tee']

这将取决于模块的定义……所以模块在Python中没有一般意义?不,没有内置的名为
的模块。它看起来是一个基于大写的类,但这只是一个猜测。
Module
是您之前必须定义的名称,可以通过导入它,也可以通过自己定义它。因此,它实际上取决于代码的其余部分。它单独给出了错误
NameError:name'Module'未定义
。但是Module()做什么,给Module指定当前模块的名称意味着什么?这行代码是否创建了别名或什么?@cerhovice如果您的模块不可调用,那么名称
Module
在python中没有任何意义
将引发名称错误:未定义名称“Module”。从理论上讲,从类型导入ModuleType作为Module或类似性质的内容时,可能会出现这种情况。令人惊讶的是,@Kevin是的,这是可能的,我认为任何方式都可以清楚地解释一切。所以你们认为我可以补充什么来让答案更完整?
>>> dir(itertools)
['__doc__', '__name__', '__package__', 'chain', 'combinations', 'combinations_with_replacement', 'compress', 'count', 'cycle', 'dropwhile', 'groupby', 'ifilter', 'ifilterfalse', 'imap', 'islice', 'izip', 'izip_longest', 'permutations', 'product', 'repeat', 'starmap', 'takewhile', 'tee']