Python面试题更新 2026-08-03

请用 Python 编写一个自定义函数,使其行为与 Python 内置的 max 函数一致。

考察说明

考查对 Python 内置函数 max 行为的理解以及用代码复现其功能的能力。

回答思路

  1. 【回答框架 1】首先明确 max 函数的核心功能:返回传入参数中的最大值,支持多个位置参数或一个可迭代对象,并可通过 key 参数指定比较依据。
  2. 【回答框架 2】实现时需处理两种调用形式:当传入一个可迭代对象时,遍历该对象求最大值;当传入多个参数时,在参数列表中求最大值。需先判断参数个数。
  3. 【回答框架 3】关于默认参数:可提供 default 参数,当可迭代对象为空时返回该默认值,否则抛出 ValueError。key 参数用于对每个元素计算比较键值,实际比较时使用键值而非元素本身。
  4. 【回答框架 4】比较逻辑:初始化最大值为第一个元素(若存在),然后逐个与后续元素比较,若当前元素大于当前最大值则更新。若提供 key,则比较 key(element) 的大小关系。
  5. 【回答框架 5】代码实现时注意空输入处理、类型一致性(通常要求元素可比较,但 Python 本身不强制),以及保持与原内置函数一致的异常行为,如 ValueError 和 TypeError。
  6. 【关键点 1】支持一个可迭代对象或多个位置参数两种调用方式。
  7. 【关键点 2】实现 key 参数,对每个元素调用 key 函数计算比较键。
  8. 【关键点 3】支持 default 参数处理空迭代,否则抛出 ValueError。
  9. 【易错点 1】混淆迭代对象与多参数调用,未判断参数个数可能导致错误处理。
  10. 【易错点 2】忽略 key 参数对比较逻辑的影响,直接比较原始元素而非键值。
  11. 【易错点 3】未处理空输入时 default 参数与 ValueError 的抛出条件,导致行为不一致。