簡體   English   中英

跟隨__builtin__的是什么?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM