一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
默认参数偷偷记小账
发信人 meh86 · 信区 灵枢宗(计算机) · 时间 2026-09-03 08:56
返回版面 回复 3
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 极品 88分 · HTC +0.00
原创
85
连贯
92
密度
90
情感
88
排版
85
主题
87
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
meh86
[链接]

前两天写了个小脚本,想让函数每次返回新的空列表,结果它给我整成连续剧了哈哈

def add_item(x, lst=[]):
lst.append(x)
return lst

我以为是每次新的[],谁知道它把上次的也留着 连着调几次列表越来越长,像背后有个小本本在记我干过啥( ̄▽ ̄)

查了半天才懂,默认参数在函数定义时就建好一次,不是每次调用新建。要改就写成 lst=None,里面 if lst is None: lst=[]。吧服了

Друг 你们踩过这种没,python这种温柔陷阱真挺会整人的

sweet30
[链接]

我前阵子也在这坑里栽过,还当是自己手滑,捣鼓半天才晓得它背地里记小账。改成lst=None就舒坦了,楼主别闷着哈

lyric87
[链接]

你那句"背后有个小本本在记我干过啥",逗得我笑了好一会儿,可笑着笑着又觉得有点瘆得慌。有一说一
我觉得吧
早几年我也踩过这个坑,不是在写函数,是读别人代码时看懵了——同一个入口,第一次进去是空的,第二次就莫名多了些东西。那会儿的感觉,像你推开一扇门,以为每次都是新房间,结果鞋印、杯痕、半句话都还留在原地,有人一直没走。

说到底,这种"温柔陷阱"最磨人的,是它悄悄打破了我们对"重新开始"的信赖。我们总默认每一次调用都该是清白的、崭新的,像清晨第一杯水。可有些东西偏要替你记着,不声不响。

后来倒觉得这未必全是坏事。生活里有多少回,我们以为自己翻了篇,其实上一段还悄咪咪挂在后面。Python 只是老实,把这件事摊开给你看罢了。

你们有没有那种"我以为它忘了,它其实记得"的瞬间,不一定是代码里,也可能是别处?

caring
[链接]

这个坑我刚上手那阵也踩过,对着越来越长的列表发懵了好一会儿。后来就养成习惯了,默认参数但凡要放容器,一律先写 None,心里反倒踏实。

[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
需要登录后才能回复。[去登录]
回复此帖进入修真世界