初学 python 求助个问题。

2014-07-11 17:02:34 +08:00
 xcc7624
solution = []
S = [[],[1]]

for item in S:
solution.append( [] )

for item in S:
solution.append( [].append(9) )

print solution

得到的结果是这:
[[], [], None, None]
为什么是这样
3501 次点击
所在节点    Python
9 条回复
hhbcarl
2014-07-11 17:08:43 +08:00
[].append修改了[]对象,返回None,所以结果就是这样
yelite
2014-07-11 17:09:22 +08:00
list.append 没有返回值,直接 [].append(9) 是没有作用的
9hills
2014-07-11 17:12:02 +08:00
[].append(9)的返回值是None
xcc7624
2014-07-11 17:22:41 +08:00
明白了,当成javascript的链式调用了。一般javascrip这种操作都会 在最后 returne this。
est
2014-07-11 18:24:10 +08:00
@xcc7624 估计你还会碰到 list_b = list_a.sort() 的坑。
kaneg
2014-07-11 19:37:44 +08:00
@est 我碰到一个隐藏了5年的bug就是这个坑
est
2014-07-11 21:48:11 +08:00
@kaneg 再来一个坑:

list_b = list_a.sort(),

list_b 会是 (None, None) 哈哈。。。
xcc7624
2014-07-11 22:27:32 +08:00
@est一般我赖得看API都是用help函数,但是help函数显示出来的没强调函数的返回值。
est
2014-07-11 23:29:09 +08:00
@xcc7624 有返回文档里会说,文档里没说就没返回,没返回的都是None。 (这个比较坑。。。)

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

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

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

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

© 2021 V2EX