内建类与内建函数的区分 / Distinction of Built-in Type and Function
对于 Python,有许多可以不需要定义或引用就可以使用的函数(类)(参考内建模块),诸如 abs, sum 等计算函数,以及 chr, bin, hex 等类型转换函数 (参考内建函数),还有一种,使用方式与函数极为类似,但却是 type 类型的内置类(非官方名称),例如 int,float 等。这些内置类实质上是一个用于生成类(实例)的类(参考元类的概念),通过传入的参数,返回一个类(实例)的对象返回值。
最直接的方式可通过 print 函数查看内建函数与内建类的区别。
Note: 此处基于 Python35 版本,以 map 为例,在 Python35 中,为 type 类型,而在 Python27 中,map 仍是内建函数类型。
1 builtin_func_list = [abs, round, pow, divmod, max, min, sum, ord, chr, bin, hex, oct] 2 builtin_type_list = [int, complex, float, str, type, bool, tuple, list, dict, slice] 3 4 for f in builtin_func_list: 5 print(f) 6 for t in builtin_type_list: 7 print(t)
通过输出可以看出,内建函数属于 built-in function, 而内建类属于 class(type),两者有所不同。
<built-in function abs> <built-in function round> <built-in function pow> <built-in function divmod> <built-in function max> <built-in function min> <built-in function sum> <built-in function ord> <built-in function chr> <built-in function bin> <built-in function hex> <built-in function oct> <class 'int'> <class 'complex'> <class 'float'> <class 'str'> <class 'type'> <class 'bool'> <class 'tuple'> <class 'list'> <class 'dict'> <class 'slice'>
相关阅读
1. 内建模块
2. 内建函数