Python 内置函数
Python 内置函数是语言核心提供的一组高效、稳定且可直接调用的函数,无需导入任何模块即可使用。这些函数覆盖了数据结构操作、算法实现、对象管理、类型转换和错误处理等核心功能。它们的重要性在于显著提升开发效率,减少冗余代码,并确保遵循统一的最佳实践。在软件开发过程中,尤其是后端开发,内置函数可以帮助开发者快速实现常见功能,如集合操作、字符串处理、数值运算和对象序列化。同时,内置函数与 Python 的 OOP 原则紧密结合,使得类、对象和迭代器能够无缝地与这些函数协作。通过深入理解其语法、与数据结构和算法的关系,以及在内存管理与性能优化中的应用,学习者将能够在系统架构和后端逻辑中高效地集成这些工具,从而避免内存泄漏、低效算法和错误处理不足的问题。
以下示例展示了如何在实际场景中利用 Python 内置函数提高代码的简洁性和健壮性。假设我们正在处理一个电商系统的订单数据,需要统计订单金额、筛选高价值客户,并保证结果的稳定性。我们可以利用 sum 来快速计算总额,用 max 和 min 获取边界值,借助 sorted 和 filter 优化数据筛选,再结合 any 或 all 验证业务规则。该示例不仅展示了内置函数如何与数据结构(列表、字典)结合,还强调了如何避免编写低效循环和冗余判断。在后端开发中,这种模式广泛用于日志分析、报表统计、用户行为追踪等高并发场景,保证系统在高负载下依然高效、可维护。通过掌握这些函数,开发者可以将复杂问题拆解为更小的函数调用单元,实现简洁而鲁棒的代码逻辑。
Example
python# 示例:电商订单处理,使用多个内置函数
orders = \[
{"user": "Alice", "amount": 120},
{"user": "Bob", "amount": 80},
{"user": "Charlie", "amount": 200},
{"user": "David", "amount": 50}
]
# 使用 sum 获取总金额
total = sum(order\["amount"] for order in orders)
# 使用 max/min 获取最大最小订单
highest = max(orders, key=lambda o: o\["amount"])
lowest = min(orders, key=lambda o: o\["amount"])
# 使用 filter 筛选高价值客户
vip_orders = list(filter(lambda o: o\["amount"] >= 100, orders))
# 使用 sorted 排序
sorted_orders = sorted(orders, key=lambda o: o\["amount"], reverse=True)
# 使用 any 检查是否存在大额订单
has_big_order = any(o\["amount"] > 150 for o in orders)
print("总金额:", total)
print("最大订单:", highest)
print("最小订单:", lowest)
print("VIP 客户订单:", vip_orders)
print("排序后订单:", sorted_orders)
print("是否存在大额订单:", has_big_order)
📊 Comprehensive Reference
| 函数 | 描述 | 语法 | 示例 | 备注 |
|---|---|---|---|---|
| abs | 返回数字的绝对值 | abs(x) | abs(-5) → 5 | 适用于整型和浮点型 |
| all | 检查可迭代对象是否所有元素为真 | all(iterable) | all(\[1, True, 3]) → True | 空序列返回 True |
| any | 检查可迭代对象是否有任一元素为真 | any(iterable) | any(\[0, False, 5]) → True | 空序列返回 False |
| ascii | 返回对象的可打印表示 | ascii(obj) | ascii("汉字") → "'\u6c49\u5b57'" | 主要用于调试 |
| bin | 将整数转为二进制字符串 | bin(x) | bin(5) → '0b101' | 结果为字符串 |
| bool | 转换为布尔值 | bool(x) | bool("") → False | 遵循 Python 真值规则 |
| bytearray | 创建可变字节数组 | bytearray(\[1,2,3]) | list(bytearray(b"abc")) | 用于二进制数据处理 |
| bytes | 创建不可变字节序列 | bytes("abc","utf-8") | b"abc" | 常用于网络传输 |
| callable | 检查对象是否可调用 | callable(obj) | callable(len) → True | 判断函数或实现 call 的对象 |
| chr | 返回 Unicode 码点对应字符 | chr(i) | chr(65) → 'A' | 与 ord 相反 |
| classmethod | 定义类方法 | @classmethod | class C: @classmethod def f(cls): pass | 绑定到类而非实例 |
| compile | 编译字符串为代码对象 | compile(source, filename, mode) | exec(compile("print(5)","","exec")) | 常与 eval/exec 一起用 |
| complex | 创建复数 | complex(real, imag) | complex(2,3) → (2+3j) | 支持字符串参数 |
| delattr | 删除对象属性 | delattr(obj, name) | delattr(o,"x") | 等价于 del o.x |
| dict | 创建字典 | dict(a=1,b=2) | {"a":1,"b":2} | 常用于结构化数据 |
| dir | 列出对象属性 | dir(obj) | dir(\[]) | 用于调试或反射 |
| divmod | 同时返回商和余数 | divmod(a, b) | divmod(7,3) → (2,1) | 比 (a//b,a%b) 更快 |
| enumerate | 返回带索引的迭代器 | enumerate(iterable) | list(enumerate(\["a","b"])) | 常用于循环 |
| eval | 执行字符串表达式 | eval(expr) | eval("3+5") → 8 | 注意安全风险 |
| exec | 执行动态代码 | exec(obj) | exec("x=5") | 适合动态逻辑 |
| filter | 基于函数过滤序列 | filter(func, iterable) | list(filter(lambda x:x>0,\[-1,2])) | 返回迭代器 |
| float | 转换为浮点数 | float(x) | float("3.14") → 3.14 | 支持字符串 |
| format | 格式化字符串 | format(value, format_spec) | format(255,"x") → 'ff' | 等价于 str.format |
| frozenset | 不可变集合 | frozenset(iterable) | frozenset(\[1,2,3]) | 可作为字典键 |
| getattr | 获取对象属性 | getattr(obj,name\[,default]) | getattr(str,"upper") | 避免 AttributeError |
| globals | 返回全局命名空间 | globals() | globals()\["name"] | 调试常用 |
| hasattr | 检查对象是否有属性 | hasattr(obj,name) | hasattr(\[], "append") → True | 常用于反射 |
| hash | 返回对象哈希值 | hash(obj) | hash("abc") | 不可哈希对象报错 |
| help | 交互式帮助 | help(obj) | help(len) | 仅交互环境有效 |
| hex | 转十六进制字符串 | hex(x) | hex(255) → '0xff' | 常用于调试 |
| id | 返回对象唯一标识 | id(obj) | id(123) | 对象生命周期相关 |
| input | 用户输入 | input(prompt) | input("Name:") | 仅交互式使用 |
| int | 转换为整数 | int(x) | int("10") → 10 | 支持进制参数 |
| isinstance | 检查对象是否为某类 | isinstance(obj,cls) | isinstance(5,int) → True | 支持多类 |
| issubclass | 检查类继承关系 | issubclass(C,D) | issubclass(bool,int) | 返回 True |
| iter | 获取迭代器 | iter(obj) | iter(\[1,2,3]) | 支持自定义迭代协议 |
| len | 返回长度 | len(obj) | len(\[1,2,3]) → 3 | 适用于容器 |
| list | 创建列表 | list(iterable) | list("abc") → \["a","b","c"] | 类型转换常用 |
| locals | 返回局部命名空间 | locals() | locals()\["x"] | 调试常用 |
| map | 对序列应用函数 | map(func,iterable) | list(map(str,\[1,2])) | 返回迭代器 |
| max | 返回最大值 | max(iterable) | max(\[1,3,2]) → 3 | 支持 key 参数 |
| memoryview | 内存视图对象 | memoryview(obj) | memoryview(b"abc")\[0] | 处理大数据效率高 |
| min | 返回最小值 | min(iterable) | min(\[1,3,2]) → 1 | 支持 key 参数 |
| next | 获取迭代器下一个元素 | next(iterator\[,default]) | next(iter(\[1,2])) | 可指定默认值 |
| object | 创建基础对象 | object() | o=object() | 所有类的基类 |
| oct | 转八进制字符串 | oct(x) | oct(8) → '0o10' | 调试常用 |
| open | 打开文件 | open(file,mode) | open("a.txt","w") | 需关闭文件 |
| ord | 返回字符 Unicode 码点 | ord(c) | ord("A") → 65 | 与 chr 相反 |
| pow | 幂运算 | pow(x,y\[,mod]) | pow(2,3) → 8 | 支持取模 |
| 输出 | print(obj) | print("Hello") | 支持多参数 | |
| property | 定义属性 | property(fget,fset) | class C: x=property(...) | 常用于封装 |
| range | 生成整数序列 | range(start,stop,step) | list(range(3)) → \[0,1,2] | 常用于循环 |
| repr | 返回对象字符串表示 | repr(obj) | repr(\[1,2]) | 调试常用 |
| reversed | 反向迭代 | reversed(seq) | list(reversed(\[1,2])) → \[2,1] | 返回迭代器 |
| round | 四舍五入 | round(x\[,n]) | round(3.14159,2) → 3.14 | n 可选 |
| set | 创建集合 | set(iterable) | set(\[1,2,2]) → {1,2} | 去重常用 |
| setattr | 设置属性 | setattr(obj,name,value) | setattr(o,"x",5) | 等价于 o.x=5 |
| slice | 创建切片对象 | slice(start,stop,step) | \[1,2,3]\[slice(1,3)] | 常用于序列 |
| sorted | 返回排序列表 | sorted(iterable) | sorted(\[3,1,2]) → \[1,2,3] | 支持 key |
| staticmethod | 定义静态方法 | @staticmethod | class C: @staticmethod def f(): pass | 绑定类而非实例 |
| str | 创建字符串 | str(obj) | str(123) → '123' | 类型转换常用 |
| sum | 序列求和 | sum(iterable\[,start]) | sum(\[1,2,3]) → 6 | 适用于数值 |
| super | 调用父类方法 | super() | super().method() | OOP 常用 |
| tuple | 创建元组 | tuple(iterable) | tuple("ab") → ("a","b") | 不可变序列 |
| type | 返回对象类型或创建类 | type(obj) | type(5) → int | 动态元类 |
| vars | 返回对象属性字典 | vars(obj) | vars(str) | 调试常用 |
| zip | 并行迭代 | zip(*iterables) | list(zip(\[1,2],\[3,4])) | 返回迭代器 |
| import | 动态导入模块 | import("os") | import("math").sqrt(4) | 不推荐直接使用 |
📊 Complete Properties Reference
| 函数 | 返回类型 | 默认行为 | 描述 | 兼容性 |
|---|---|---|---|---|
| abs | int/float | 返回绝对值 | 计算数值的绝对值 | 所有版本 |
| all | bool | 空序列返回 True | 检查可迭代对象是否所有元素为真 | 所有版本 |
| any | bool | 空序列返回 False | 检查可迭代对象是否存在真值 | 所有版本 |
| ascii | str | 返回转义字符串 | 显示对象的 ASCII 表示 | Python3+ |
| bin | str | 返回带 0b 前缀 | 整数转二进制 | 所有版本 |
| bool | bool | 遵循真值规则 | 转换为布尔值 | 所有版本 |
| bytearray | bytearray | 可变序列 | 创建字节数组 | 所有版本 |
| bytes | bytes | 不可变序列 | 创建字节对象 | 所有版本 |
| callable | bool | 检查可调用性 | 判断对象是否可调用 | 所有版本 |
| chr | str | Unicode 字符 | 返回码点对应字符 | 所有版本 |
| classmethod | classmethod | 绑定类 | 定义类方法 | 所有版本 |
| compile | code | 编译对象 | 编译字符串为代码 | 所有版本 |
| complex | complex | (0+0j) | 创建复数 | 所有版本 |
| delattr | None | 删除属性 | 移除对象属性 | 所有版本 |
| dict | dict | {} | 创建字典 | 所有版本 |
| dir | list | 属性名列表 | 列出对象属性 | 所有版本 |
| divmod | tuple | (商,余数) | 同时返回整除结果 | 所有版本 |
| enumerate | enumerate | 返回迭代器 | 生成索引+值对 | 所有版本 |
| eval | 结果类型 | 执行表达式 | 计算字符串表达式 | 所有版本 |
| exec | None | 执行代码 | 动态执行 Python 代码 | 所有版本 |
| filter | filter | 迭代器 | 过滤序列 | 所有版本 |
| float | float | 0.0 | 转换为浮点数 | 所有版本 |
| format | str | 格式化结果 | 格式化对象 | 所有版本 |
| frozenset | frozenset | 不可变集合 | 创建不可变集合 | 所有版本 |
| getattr | 属性值/默认 | 默认值可选 | 获取对象属性 | 所有版本 |
| globals | dict | 全局作用域 | 返回全局变量字典 | 所有版本 |
| hasattr | bool | 检查属性存在性 | 判断对象是否有属性 | 所有版本 |
| hash | int | 对象哈希 | 返回对象哈希值 | 所有版本 |
| help | None | 交互式输出 | 帮助文档 | 所有版本 |
| hex | str | 0x 前缀 | 整数转十六进制 | 所有版本 |
| id | int | 对象标识 | 返回对象内存地址 | 所有版本 |
| input | str | 读取输入 | 获取用户输入 | 所有版本 |
| int | int | 0 | 转换为整数 | 所有版本 |
| isinstance | bool | 检查关系 | 对象是否属于某类 | 所有版本 |
| issubclass | bool | 检查继承 | 类是否为子类 | 所有版本 |
| iter | iterator | 生成迭代器 | 获取对象迭代器 | 所有版本 |
| len | int | 序列长度 | 返回容器长度 | 所有版本 |
| list | list | \[] | 创建列表 | 所有版本 |
| locals | dict | 局部作用域 | 返回局部变量字典 | 所有版本 |
| map | map | 迭代器 | 对序列应用函数 | 所有版本 |
| max | 元素类型 | 取最大值 | 返回最大元素 | 所有版本 |
| memoryview | memoryview | 内存视图 | 暴露字节缓冲区 | 所有版本 |
| min | 元素类型 | 取最小值 | 返回最小元素 | 所有版本 |
| next | 元素/默认 | 抛 StopIteration | 返回下一个元素 | 所有版本 |
| object | object | 基础对象 | 新建对象 | 所有版本 |
| oct | str | 0o 前缀 | 整数转八进制 | 所有版本 |
| open | TextIOWrapper | 文件句柄 | 打开文件 | 所有版本 |
| ord | int | Unicode 码点 | 返回字符码点 | 所有版本 |
| pow | int/float | 支持模运算 | 幂运算 | 所有版本 |
| None | 输出到控制台 | 打印对象 | 所有版本 | |
| property | property | 定义属性 | 创建托管属性 | 所有版本 |
| range | range | 迭代器 | 生成整数序列 | 所有版本 |
| repr | str | 字符串表示 | 返回对象字符串 | 所有版本 |
| reversed | iterator | 反向迭代 | 返回反向迭代器 | 所有版本 |
| round | int/float | 四舍五入 | 取整或指定小数位 | 所有版本 |
| set | set | {} | 创建集合 | 所有版本 |
| setattr | None | 设置属性 | 为对象添加属性 | 所有版本 |
| slice | slice | 切片对象 | 定义切片 | 所有版本 |
| sorted | list | 返回新列表 | 对序列排序 | 所有版本 |
| staticmethod | staticmethod | 绑定类 | 定义静态方法 | 所有版本 |
| str | str | "" | 转换为字符串 | 所有版本 |
| sum | int/float | start=0 | 序列求和 | 所有版本 |
| super | super | 调用父类 | 获取父类对象 | 所有版本 |
| tuple | tuple | () | 创建元组 | 所有版本 |
| type | type | 返回类型或新类 | 获取对象类型或动态创建类 | 所有版本 |
| vars | dict | 对象属性 | 返回对象 dict | 所有版本 |
| zip | zip | 迭代器 | 并行迭代 | 所有版本 |
| import | module | 动态导入 | 导入模块 | 所有版本 |
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部