在Python中,您可以向自己附加一个列表,它将接受赋值.
>>> l = [0,1]
>>> l.append(l)
>>> l
[0, 1, [...]]
>>> l[-1]
[0, 1, [...]]
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么?
Python允许这样做而不是抛出一个错误,是因为它有潜在的用途,还是因为没有必要明确禁止这种行为?
这是因为它有潜在的用途,还是只是因为没有必要明确禁止这种行为?
两个都。列出存储引用,并且没有理由阻止它们存储某些其他有效的引用。
至于潜在用途,请考虑通用的自上而下射击类型视频游戏:
Level包含对 every 的引用Enemy,以便它可以在每一帧中绘制和更新它们。Enemy包含对其 的引用Level,以便它可以(例如)查询到 的距离或在 中Player生成 a 。BulletLevel| 归档时间: |
|
| 查看次数: |
188 次 |
| 最近记录: |