我偶然注意到,在 Python 中你可以编写如下内容:
l = list()
for i in range(5):
l.append(l)
如果我打印出 l 是什么,它看起来像这样:
[[...], [...], [...], [...], [...]]
现在我可以做这样的事情:
l[0][0][0][0]...[0]
这将返回完全相同的列表。
我的 linter 没有检测到我在代码中犯的错误,因此可能很难发现。所以我的问题是:为什么允许列表自行追加?你能用它做什么?
如果它没有用,它可能应该被禁止。
最佳答案
您不允许列表中存在列表的标准是它没有用。但很难证明这不是真的。也许还没有人知道它的用途,但这并不意味着将来有人不会。与此同时,在解释将对象添加到列表中存在哪些异常以及实现这些异常方面,该语言都会增加成本。
如果您可以证明允许向自身添加列表是有害的,那么您就有更有力的理由对语言进行更改。但“我不小心输入了错误的变量名”并不能成为造成伤害的有力论据。
关于python - 为什么允许列表自行追加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58843784/