Python技能使用说明
2026-03-29
新闻来源:网淘吧
围观:11
电脑广告
手机广告
快速参考
| 主题 | 文件 |
|---|---|
| 动态类型、类型提示、鸭子类型 | types.md |
| 列表/字典/集合的陷阱、推导式 | collections.md |
| 参数/关键字参数、闭包、装饰器、生成器 | functions.md |
| 继承、描述符、元类 | classes.md |
| GIL、线程、异步IO、多进程 | concurrency.md |
| 循环导入、包、init.py | imports.md |
| Pytest、模拟、夹具 | testing.md |
关键规则
def f(items=[])在所有调用中共享同一个列表——应使用items=None然后items = items or []是检查身份,==检查相等性 ——"a" * 100 is "a" * 100可能为 False- 在遍历时修改列表会跳过元素 —— 遍历副本:
for x in list(items): - GIL 阻止了真正的 Python 线程并行 —— 对于 CPU 密集型任务使用多进程
- 裸
except:会捕获SystemExit和KeyboardInterrupt—— 使用except Exception: UnboundLocalError当给外部作用域变量赋值时 —— 使用nonlocal或globalopen()没有上下文管理器会导致句柄泄漏——务必使用with open():- 循环导入会静默失败或部分失败——在函数内部导入以打破循环
0.1 + 0.2 != 0.3——浮点数问题,请使用decimal.Decimal处理货币- 生成器在一次迭代后耗尽——无法重用,需要重新创建或使用
itertools.tee - 可变类属性在实例间共享——应在
__init__中定义 __init__不是构造函数——__new__创建实例,__init__初始化实例- 默认编码依赖于平台——请始终指定
encoding='utf-8'
文章底部电脑广告
手机广告位-内容正文底部


微信扫一扫,打赏作者吧~