[英]What turns following to __builtin__?
我有以下代码片段和输出
with metaclass:
def some(*args):
return type(args)
__metaclass__ = some
class Foo:
a = 'khkjh'
print Foo.__module__
输出: __builtin__
without metaclass:
class Foo:
a = 'khkjh'
print Foo.__module__
输出: __main__
所以,
什么是__builtin__
?
元类为什么或如何影响它?
__builtin__
是提供所有内置函数,异常等的模块。
您正在从__module__
返回此信息,因为您提供的元类实际上将Foo
转换为tuple
类型:
>>> def some (*args):
... return type(args) # This returns <type 'tuple'>
...
>>> class Hmm(object):
... __metaclass__ = some
...
>>> class Foo(object):
... pass
...
>>> print Hmm
<type 'tuple'>
>>> print Foo
<class '__main__.Foo'>
>>> print tuple
<type 'tuple'>
>>> print tuple.__module__
__builtin__
如您所见, Hmm
现在是tuple
类型。 tuple
类型由__builtin__
模块提供,因此您将看到输出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.