[英]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.