2024-05-15 20:27:10 发布
网友
下面的代码返回false
import inspect print(inspect.isbuiltin(map))
但是map函数列在"built-in" functions下
为什么会这样
inspect.isbuiltin只会
inspect.isbuiltin
Return true if the object is a built-in function or method.
内置的map是一个类,而不是一个函数或方法:
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中有两种含义:
虽然大多数builtins都是为了速度而编译的,但这并不是必需的
builtins
如果要检查名称是否是builtins的一部分,请通过模块执行此操作:
>>> import builtins >>> hasattr(builtins, "map") True >>> hasattr(builtins, "sum") True >>> hasattr(builtins, "reduce") False
inspect.isbuiltin
只会内置的
map
是一个类,而不是一个函数或方法:事实上,大多数返回迭代器的“内置函数”都是作为类实现的;调用它们将返回经过优化的实例,而不是重复使用某些泛型迭代器类
此外,请记住术语“内置”在Python中有两种含义:
虽然大多数
builtins
都是为了速度而编译的,但这并不是必需的如果要检查名称是否是
builtins
的一部分,请通过模块执行此操作:相关问题 更多 >
编程相关推荐