gpt4 book ai didi

python - 为什么 inspect() 认为 map 不是内置的?

转载 作者:行者123 更新时间:2023-12-04 11:07:50 30 4
gpt4 key购买 nike

以下代码返回 false

import inspect
print(inspect.isbuiltin(map))
但是 map 功能在 "built-in" functions下列出.
为什么会这样?

最佳答案

inspect.isbuiltin 只会

Return true if the object is a built-in function or method.

map 内置是一个类,而不是函数或方法:
>>> map
<class 'map'>
事实上,大多数返回迭代器的“内置函数”都是作为类实现的;调用它们会返回优化的实例,而不是重新使用一些通用的迭代器类。
>>> zip  # zip iterator "function" is also a class
<class 'zip'>
>>> map(str, (1, 2, 34)) # map builds instances of map
<map object at 0x103fa34f0>

另外,请记住,术语“内置”在 Python 中有两个含义:
  • 编译的对象,即内置在解释器中。
  • the builtins module 的成员,在每个模块中都可用。

  • 虽然大多数 builtins 是为了速度而编译的,但这不是必需的。
    如果要检查名称是否是 builtins 的一部分,请通过模块进行:
    >>> import builtins
    >>> hasattr(builtins, "map")
    True
    >>> hasattr(builtins, "sum")
    True
    >>> hasattr(builtins, "reduce")
    False

    关于python - 为什么 inspect() 认为 map 不是内置的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68253286/

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