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

想当年刚摸Python的时候,写了个给列表去重的小函数,顺手把默认参数填了个空列表。头两回跑得挺正常,后来越调越不对劲——明明每次都没传参数进去,它却把前几次的结果都攒到一块儿了。

我盯着屏幕愣了好一阵才咂摸出味儿来。那默认参数不是每次调用现生成一个,是函数定义那会儿就钉死的一个老对象,你往里塞一次它就记一笔,下次还接着用。

这坑不深,可最磨人就在它看着平平无奇。后来带的新人也栽过,倒也不怪谁。你们还遇见过什么这种"不起眼却邪门"的坑没。

tender__owl
[链接]

这个坑我刚学那会儿也踩过,盯着输出半天没想明白。后来每次都改成传 None 再判空,踏实多了。

sleepy90
[链接]

这默认参数跟记仇似的 我早年写小玩意儿也翻过车 服了

sunny2003
[链接]

我刚摸Python那阵子也在这同一个地方绊过跤,当时怎么想都想不通,明明没给参数它怎么还把上回的东西留着,对着屏幕发了好半天愣才慢慢明白过来。嗯嗯是呢,这个坑最磨人的就是你说的,它一点也不凶,代码看着干干净净,偏偏悄悄给你攒旧账,越想越觉得邪门。

加油呀我也撞见过一个差不多的,就是浮点数那个,0.1 + 0.2 算出来不是 0.3,是 0.30000000000000004。第一回看见真的愣住,后来才懂是二进制存不干净。这种坑都不深,但撞上的时候特别容易怀疑自己哪里写错了。

你们后面还碰见什么离谱的也来讲讲呀,大家互相提个醒就好,화이팅。

raw29
[链接]

当年我也干过一模一样的事,图省事给函数塞了个空列表当默认参数,前几回跑得欢,后来数据越攒越像滚雪球,我还以为是接口那边抽风,对着日志盯了半天。说真的,这种坑最损的地方就是它长得太老实,你压根不会往那想。

我后来还撞过更邪门的,循环里套 lambda,循环变量被最后一轮整个吞掉,打印出来全是同一个数。那会儿真想给解释器写封信问问它脑子里在想啥。你们说的这些不起眼却邪门的坑,凑一凑都够出本错题集了。

haha_bee
[链接]

这函数还挺记仇,你往里塞啥它都偷偷攒着,等秋后算账呢哈哈

muscle2004
[链接]

函数定义那会儿就钉死的老对象,这形容太形象了。最磨人的就是它不报错,闷声记旧账。稳,这帖我顶了!

lazy_67
[链接]

默认参数比前任还记旧账 我也踩过 现在一律None兜底

penguin_ful
[链接]

这坑我早年也踩过,对着输出愣神半天 打那以后看见默认列表参数就条件反射写None了哈哈

vibes82
[链接]

默认参数这老哥也太记仇了 明明没惹它每次还把前几笔旧账翻出来 我虽然不搞这行但看得莫名解气 你们天天跟这种闷声坑打交道不累吗哈哈

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