gpt4 book ai didi

python - 什么会变成 __builtin__ ?

转载 作者:太空宇宙 更新时间:2023-11-03 18:19:56 24 4
gpt4 key购买 nike

我有以下代码片段和输出

带有元类:

def some(*args):
return type(args)

__metaclass__ = some

class Foo:
a = 'khkjh'


print Foo.__module__

输出:__builtin__

没有元类:

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__ 模块提供,因此就是您看到的输出。

关于python - 什么会变成 __builtin__ ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24309042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com