【发布时间】:2013-06-21 01:33:56
【问题描述】:
考虑以下几点:
>>> t = ([],)
>>> t[0].extend([12, 34])
>>> t
([12, 34],)
>>> t[0] += [56, 78]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> t
([12, 34, 56, 78],)
>>>
我知道元组是不可变的,但 LHS 中的项目不是元组!(事实上,预期的分配实际上成功了,尽管有错误消息,这使得整个场景更加奇怪。)
为什么这种行为不被视为错误?
【问题讨论】:
-
为什么人们总是带着一个问题来 SO,然后再去 Python 常见问题解答?在常见问题解答中,您将得到一个经过推理、精心编写和多个核心开发人员审查的答案,并且经受住了时间的考验。在 SO 上,你会得到一个答案,有人在 5 分钟内一起拍打,在接下来的 5 分钟内反复编辑,然后在剩下的时间里放弃。你不想拥有前者吗?
-
@abarnert,因为有无数种方法可以提出问题,而且 google/stackoverflow 的结果远远超过搜索 python.org。 SO 投出最广泛的问题网,当它失败时,提出问题通常会得到快速响应和积分。在许多情况下,会链接到其他更好的资源,因此人们会被指向最佳答案来源。
标签: python