{"answer":"编写可靠的 Python,避免可变默认值、导入陷阱和常见的运行时意外。"}
动态打字、 类型提示、 鸭子打字是一项面向实际任务的技能,主要用于类型. md. 列表/dit/ set 获得chas, 理解. 收集. md. args/kwargs, 关闭、 装饰、 发电机. md. 继承。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
| 主题 | 文件 |
|---|---|
| 动态类型、类型提示、鸭子类型 | types.md |
| 列表/字典/集合的易错点、推导式 | collections.md |
| 参数(args/kwargs)、闭包、装饰器、生成器 | functions.md |
| 继承、描述符、元类 | classes.md |
| GIL、线程、asyncio、多进程 | concurrency.md |
| 循环导入、包、__init__.py | imports.md |
| Pytest、Mock、fixture | testing.md |
def f(items=[]) 会在所有调用间共享同一个列表 — 应改用 items=None,然后写成 items = items or []is 检查对象标识(identity),== 检查值相等(equality)— "a" * 100 is "a" * 100 的结果可能为 Falsefor x in list(items):except: 会捕获 SystemExit 和 KeyboardInterrupt — 应使用 except Exception:UnboundLocalError — 请使用 nonlocal 或 global 显式声明open() 未配合上下文管理器使用会导致文件句柄泄漏 — 务必始终使用 with open():0.1 + 0.2 != 0.3 — 浮点数精度问题,涉及金钱运算时请使用 decimal.Decimalitertools.tee__init__ 中定义实例属性__init__ 并非构造器 — 实例由 __new__ 创建,__init__ 仅负责初始化encoding='utf-8'