Module(__ name__)做什么?

时间:2014-12-30 16:15:31

标签: python

我对这行代码感到困惑:

email = Module(__name__)

我猜这只是创建一个别名来引用我所在的模块?如果没有,那么这有什么用呢?

1 个答案:

答案 0 :(得分:1)

  

module内,模块的名称(作为字符串)可用作全局变量__name__的值。

>>> import itertools as it
>>> it.__name__
'itertools'

但是email = Module(__name__)会引发NameError :(名称'模块'未定义)。如果您定义了名称Module,例如使用itertools(__name__)因为它不可调用,则会引发TypeError

因为__name__是一个模块属性,你不能单独传递它。

您还可以在__name__函数结果中找到dir(),用于找出模块定义的名称。

>>> 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']