BuiltinFuntionType和BuiltinMethodType之间的区别

时间:2017-11-26 06:51:11

标签: python-3.x

在官方文档中没有严格的定义来区分BuiltinFuntionType和BuiltinMethodType。

请注意以下代码

import types
In [133]: total_builtins = dir(__builtins__)
In [138]: builtin_functions =  [i for i in total_builtins if 
isinstance(eval(i),types.BuiltinFunctionType)]
In [139]: builtin_methods = [i for i in total_builtins if
 isinstance(eval(i),types.BuiltinMethodType)]
In [140]: builtin_functions ==  builtin_methods
Out[140]: True

检查他们的类型

In [142]: {type(getattr(__builtins__, name)) for name in builtin_functions}
Out[142]: {builtin_function_or_method}

boolean关键字'或'表示解释器在实现过程中不区分它们 如果那样,为什么不把它们结合起来?

文档中有一个例子解释了built-in methods

  

内置方法的一个例子是alist.append(),假设alist是一个列表对象。在这种情况下,特殊的只读属性 self 设置为alist表示的对象。3. Data model — Python 3.6.3 documentation

因此内置方法是内置类型的方法,如(list.appenddict.update)。

但是,它没有解释__builtins__

BuiltinFuntionType和BuiltinMethodType有什么区别?

0 个答案:

没有答案