一段有趣的代码

2018-05-11 00:04:39 +08:00
 SingeeKing
def buggy(arg, result=[]):
    print(result)
    result.append(arg)
    print(result)

buggy('a')
buggy('b')
buggy('c')

学到了新知识……

https://stackoverflow.com/questions/2335160/what-is-the-scope-of-a-defaulted-parameter-in-python

6396 次点击
所在节点    Python
27 条回复
glasslion
2018-05-11 11:20:42 +08:00
@binux 但对 python 来说是常识啊
xmadi
2018-05-11 11:22:31 +08:00
我还以为这是常识 会写 python 都知道
mulog
2018-05-11 12:01:10 +08:00
每本 python 书应该都会讲到这个吧
lihongming
2018-05-11 12:34:07 +08:00
每学一门新语言,我都会认真研究变量的作用范围。
对 Python 来说,集合变量的作用范围是全局。
我以为上面两句都是常识
ech0x
2018-05-11 12:40:39 +08:00
这是坑,默认变量的坑……
bravecarrot
2018-05-11 13:35:43 +08:00
Python 入门必采坑+1
还有 深拷贝 浅拷贝
可迭代对象的元素是列表等

推荐 python cookbook,fluent python
你会发现 有意思的事还有很多 2333
hareandlion
2018-05-11 19:52:02 +08:00
默认参数不用可变类型,不讲这个的新手教程都不是好书

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/453924

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX