我对这行代码感到困惑:
我猜这只是创建一个别名来引用当前所在的模块?如果不是,那么这个操作是干什么的?
email = Module(__name__)
我猜这只是创建一个别名来引用当前所在的模块?如果不是,那么这个操作是干什么的?
email = Module(__name__)
__name__
的值使用。>>> import itertools as it
>>> it.__name__
'itertools'
但是email = Module(__name__)
会引发NameError
:(名称“Module”未定义)。如果您定义了名称Module
,例如使用itertools(__name__)
,则由于它不可调用,它会引发TypeError
。
因此,由于__name__
是模块属性,您不能仅传递它。
另外,您可以在dir()
函数的结果中找到__name__
,该函数用于查找模块定义的名称。
>>> 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']
Module
没有任何意义。如果您的模块不可调用,则Module(__name__)
将引发NameError:名称'Module'未定义。 - Mazdak
Module
的模块。从首字母大写来看,它可能是一个类,但这只是一种猜测。 - kindall