010_Python 内置函数核心学习笔记:特性、分类与版本差异

内容分享3天前发布
0 1 0

一、内置函数概述

Python 的内置函数(Built-in Functions) 是解释器启动时自动加载的核心功能集合,归属builtins模块,属于内置命名空间(全局可访问)。无需手动导入即可直接调用,是 Python 提供的 “开箱即用” 基础工具,覆盖编程核心刚需场景,且因多数由 C 语言实现,执行效率远高于纯 Python 自定义函数。

二、内置函数的本质与核心特性

1. 归属与命名空间

  • 所有内置函数存储于builtins模块,内置命名空间是 Python 优先级最高的命名空间(高于全局、局部命名空间);
  • 任意作用域可直接调用(除非被同名局部变量覆盖),验证示例:
  • python
  • import builtins # 内置print函数与builtins.print是同一对象 print(builtins.print is print) # 输出:True print(builtins.len is len) # 输出:True

2. 核心特性

  • 性能优异:C 语言底层实现,避免 Python 解释器的性能开销(如len()比手动遍历计数快 10 倍以上);
  • 全局可访问:无需导入模块,简化代码冗余(如print()无需import xxx);
  • 不可随意覆盖:虽允许用同名变量覆盖(如len = 123),但会破坏代码可读性和功能可用性,强烈不推荐;
  • 支撑语言核心机制:是 Python 动态类型、面向对象、迭代协议等特性的基础支撑。

三、Python 选择内置函数的核心依据

Python 筛选内置函数遵循 “核心刚需、高频通用、性能关键、语言完整性” 四大原则,具体拆解:

  1. 满足基础通用需求:覆盖所有程序都可能用到的 “基础设施”(如print()输出、input()输入、len()长度计算);
  2. 支撑语言核心特性:服务于 Python 底层机制(如isinstance()支撑类型判断、getattr()支撑动态反射、iter()支撑迭代协议);
  3. 性能敏感操作优先:对执行频率高、性能影响大的操作(如sort()排序、map()映射)进行 C 级优化;
  4. 简化语法降低门槛:避免 “导入模块才能用基础功能” 的冗余(如open()文件操作、help()协助查询);
  5. 保持命名空间精简:仅纳入 “不可替代” 的核心功能,非通用需求(如正则、网络请求)放入标准库(re、requests)。

四、常用内置函数分类详解

1. 基础操作类(高频刚需)

函数名

语法

功能描述

示例代码

print

print(*objects, sep=' ', end='
', file=sys.stdout)

输出对象到指定流(默认控制台)

print(“Hello”, “Python”, sep='-') → Hello-Python

input

input([prompt])

读取用户输入(返回字符串)

name = input(“请输入姓名:”)

len

len(s)

返回对象长度(字符串 / 列表 / 字典等可迭代对象)

len([1,2,3]) → 3;len(“abc”) → 3

type

type(object)

返回对象的类型

type(10) → <class 'int'>;type([]) → <class 'list'>

id

id(object)

返回对象的唯一内存地址(整数)

a=10; id(a) → 140709212345672(因环境而异)

help

help([object])

查看对象协助文档

help(str.split) → 显示字符串 split 方法文档

2. 类型转换类(数据类型适配)

函数名

语法

功能描述

示例代码

int

int(x, base=10)

转为整数(base 指定进制,默认 10)

int(“123”) → 123;int(“101”, 2) → 5

float

float(x)

转为浮点数

float(“3.14”) → 3.14;float(10) → 10.0

str

str(object)

转为字符串

str(123) → “123”;str([1,2]) → “[1, 2]”

list

list(iterable)

转为列表

list((1,2,3)) → [1,2,3];list(“abc”) → [“a”,”b”,”c”]

tuple

tuple(iterable)

转为元组

tuple([1,2,3]) → (1,2,3)

dict

dict(** kwargs)或dict(iterable)

转为字典

dict(a=1, b=2) → {“a”:1, “b”:2};dict([(“a”,1)]) → {“a”:1}

bool

bool(x)

转为布尔值(0/''/[]/None 等为 False)

bool(0) → False;bool([1]) → True

set

set(iterable)

转为集合(去重)

set([1,2,2,3]) → {1,2,3}

3. 序列 / 集合 / 映射操作类(数据处理)

函数名

语法

功能描述

示例代码

range

range(start, stop[, step])

生成整数序列(惰性迭代,不占内存)

list(range(1,5,2)) → [1,3];list(range(5)) → [0,1,2,3,4]

enumerate

enumerate(iterable, start=0)

生成索引 – 元素对(枚举对象)

for i, v in enumerate([“a”,”b”], start=1): print(i,v) → 1 a;2 b

zip

zip(*iterables)

打包多个可迭代对象(取最短长度)

list(zip([1,2], [“a”,”b”])) → [(1,”a”), (2,”b”)]

sorted

sorted(iterable, key=None, reverse=False)

排序并返回新列表(不修改原对象)

sorted([3,1,2], reverse=True) → [3,2,1];sorted([“b”,”a”], key=str.upper) → [“a”,”b”]

max/min

max(iterable)/min(iterable)

返回最大 / 最小值

max([1,2,3]) → 3;min(“abc”) → “a”

sum

sum(iterable, start=0)

求和(start 为初始值,默认 0)

sum([1,2,3]) → 6;sum([1,2], start=10) → 13

any

any(iterable)

任意元素为 True 则返回 True(空为 False)

any([0,1,False]) → True;any([]) → False

all

all(iterable)

所有元素为 True 则返回 True(空为 True)

all([1,2,True]) → True;all([1,False]) → False

4. 迭代器与函数工具类(流程处理)

函数名

语法

功能描述

示例代码

iter

iter(iterable)

生成迭代器对象(支撑next()调用)

it = iter([1,2]); next(it) → 1;next(it) → 2

next

next(iterator, default=None)

获取迭代器下一个元素(无元素返回 default)

it = iter([1]); next(it, “end”) → 1;next(it, “end”) → “end”

map

map(function, *iterables)

用函数处理可迭代对象元素,返回迭代器

list(map(lambda x: x*2, [1,2])) → [2,4]

filter

filter(function, iterable)

筛选可迭代对象中满足函数条件的元素

list(filter(lambda x: x%2==0, [1,2,3])) → [2]

5. 对象与属性操作类(动态反射)

函数名

语法

功能描述

示例代码

isinstance

isinstance(object, classinfo)

判断对象是否为指定类型(支持多类型)

isinstance(10, int) → True;isinstance(“a”, (str, int)) → True

hasattr

hasattr(object, name)

判断对象是否存在指定属性(name 为字符串)

class A: x=1; hasattr(A(), “x”) → True

getattr

getattr(object, name, default)

获取对象属性(无则返回 default)

class A: x=1; getattr(A(), “x”) → 1;getattr(A(), “y”, 0) → 0

setattr

setattr(object, name, value)

为对象设置属性

class A: pass; a=A(); setattr(a, “x”, 1); print(a.x) → 1

delattr

delattr(object, name)

删除对象属性

class A: x=1; a=A(); delattr(a, “x”); hasattr(a, “x”) → False

6. 装饰器与类工具类(面向对象)

函数名

语法

功能描述

示例代码

staticmethod

staticmethod(function)

定义静态方法(无 self 参数,类和实例均可调用)

class A: @staticmethod def func(): print(1); A.func() → 1

classmethod

classmethod(function)

定义类方法(接收 cls 参数,绑定类而非实例)

class A: @classmethod def func(cls): print(cls); A.func() → <class '__main__.A'>

property

property(fget=None, fset=None, fdel=None, doc=None)

定义属性(将方法转为属性访问)

class A: def __init__(self, x): self._x=x; @property def x(self): return self._x; a=A(1); print(a.x) → 1

7. 输入输出与资源管理类

函数名

语法

功能描述

示例代码

open

open(file, mode='r', encoding=None)

打开文件,返回文件对象(需配合with关闭)

with open(“test.txt”, “w”, encoding=”utf-8″) as f: f.write(“Hello”)

8. 数学与数值操作类

函数名

语法

功能描述

示例代码

abs

abs(x)

返回绝对值

abs(-3.14) → 3.14;abs(5) → 5

round

round(x, n=0)

四舍五入(n 为小数位数,默认 0)

round(3.1415, 2) → 3.14;round(3.5) → 4

pow

pow(x, y, z=None)

计算 x^y(z 存在则返回 (x^y)% z)

pow(2,3) → 8;pow(2,3,5) → 3

divmod

divmod(a, b)

返回 (a//b, a% b)(商和余数元组)

divmod(7,3) → (2,1)

9. 异常处理类

函数名

语法

功能描述

示例代码

raise

raise [exception [from cause]]

主动抛出异常

raise ValueError(“参数错误”)

assert

assert expression, message

断言(expression 为 False 则抛出 AssertionError)

assert 1==2, “1不等于2” → 抛出 AssertionError: 1 不等于 2

五、各版本内置函数差异说明

1. Python 2 → Python 3 的重大调整(影响兼容性)

变化类型

具体调整

替代方案

废弃函数

移除apply()、cmp()、coerce()、execfile()

func(*args)替代apply();operator.cmp替代cmp()

功能替换

raw_input() → input()(3.x 的input()等价于 2.x 的raw_input())

直接使用input(),需类型转换时配合int()等

功能升级

print从语句改为内置函数(支持end/sep参数)

print(“a”, end=””)替代print “a”

模块迁移

reduce()从内置移至functools模块

from functools import reduce后使用

迭代器优化

xrange() → range()(3.x 的range()为惰性迭代器)

直接使用range(),无需修改

2. Python 3.x 子版本渐进式迭代(无破坏性变化)

  • Python 3.3:新增yield from语法(适配迭代器内置函数);
  • Python 3.4:内置函数isinstance()适配枚举类型(enum.Enum);
  • Python 3.8:新增math.prod()(计算乘积,原需自定义);
  • Python 3.9:优化dict相关操作(如dict.merge()),内置函数isinstance()支持更多复合类型判断;
  • Python 3.10:match语句(非函数,但优化了内置类型判断逻辑)。

3. 核心稳定性

  • 基础内置函数(print、len、type、isinstance等)从未变动;
  • 废弃函数极少,且均提供明确替代方案,兼容性优先。

六、内置函数使用提议

  1. 优先使用内置函数:一样功能下,内置函数性能远优于自定义函数(如sum()比for循环求和快 5-10 倍);
  2. 避免覆盖内置函数:严禁用len、print、sorted等作为变量名,否则会屏蔽内置功能;
  3. 熟悉参数细节:如sort()是列表方法(原地排序),sorted()是内置函数(返回新列表);zip()取最短可迭代对象长度;
  4. 结合场景选择:如map()/filter()适合简单逻辑,复杂场景提议用列表推导式(可读性更高);
  5. 利用文档快速查询:不确定功能时,用help(函数名)查看官方文档(如help(sorted))。

七、总结

Python 内置函数是 “核心刚需 + 性能优化 + 易用性” 的平衡产物,覆盖编程全流程基础操作。其核心价值在于:

  1. 开箱即用,降低开发门槛;
  2. 底层优化,提升程序性能;
  3. 支撑语言核心特性,保证语法一致性。

版本间差异以 “渐进式迭代” 为主,核心功能稳定性强,学习时需重点掌握高频函数的使用场景与参数细节,避免覆盖内置函数,充分发挥其高效、便捷的优势。

© 版权声明

相关文章

1 条评论

  • 头像
    天骄 读者

    收藏了,感谢分享

    无记录
    回复