会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
小小张说故事
博客园
首页
新随笔
联系
订阅
管理
2026年11月8日
Python 里 def f(x=[]) 为什么每次调用都共用同一个列表?拆开 __defaults__ 和函数对象创建时那一次求值
摘要: 几乎每个 Python 教程都会警告「别用可变对象当默认参数」,但多数只给结论不给机制:为什么是共享的?那个列表到底存在哪儿?什么时候被求值一次? 一句话结论:默认参数不是每次调用时创建的,而是在 def 语句执行、函数对象被创建那一刻求值一次,之后作为 __defaults__ 元组挂在函数对象上
阅读全文
posted @ 2026-11-08 12:39 小小张说故事
阅读(3)
评论(0)
推荐(0)
公告