超超哥AI云计算超哥讲AI 出品

社群入口

AI 超哥 Codex 副业群

扫码加入群聊,一起交流 AI、Codex 与副业实践。

原图注明二维码于10月20日前有效;若提示过期或无法入群,请等待更新二维码。

AI 超哥 Codex 副业群入群二维码在新窗口打开原图

参数、默认值与调用规则

Python 数据类型、函数与异常处理#Python全栈#第二阶段#Python 数据类型、函数与异常处理#参数、默认值与调用规则约 590 字 · 2 分钟阅读
追问显示
点击任意追问卡片可收起 / 展开

位置参数与关键字参数有什么区别?

追问 调用 create_user(name, age) 时,如何让多个含义相近的参数更容易辨认?

参数被重复赋值或漏传时,通常会发生什么?

追问 f(1, x=2) 是否有效,需要结合什么函数签名判断?

默认参数在什么时候求值?

追问 为什么不能默认认为 time.time() 每次调用时都会重新执行?

默认参数使用列表,为什么可能跨调用保留数据?

追问 阅读 def add(item, items=[]): items.append(item); return items 的连续调用结果,如何修复?

使用 None 作为默认值时,如何区分“不传”和“明确传入 None”?

追问 业务需要区分两者时,如何使用独立哨兵对象?

*args 与 **kwargs 分别接收什么?

追问 传入后是什么类型?为什么不应通过它们隐藏所有接口约束?

调用时的 *sequence 与 **mapping 如何使用?

追问 解包 Key 不是字符串、参数重复或出现未知参数时会怎样?

仅限关键字参数有什么作用?

追问 def query(name, *, limit=20) 为什么能减少位置传参造成的误用?

仅限位置参数如何声明?

追问 函数签名里的 / 与 * 分别规定什么调用边界?

如何设计一个可以稳定扩展的分页函数接口?

追问 页码、每页数量、过滤条件、默认值和参数校验如何安排?

函数语法与调用约束可参考 Python 官方控制流与函数教程,并用合法与非法调用分别验证。