您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

(还有)列出别名难题

(还有)列出别名难题

i = 0与完全不同i[0] = 0

伊格纳西奥(Ignacio)简洁正确地解释了原因。因此,我将尝试用一个更简单的词来解释这里实际发生的情况。

在第一种情况下,i只是一个标签指向某个对象(列表中的成员之一)。 i = 0更改对其他对象的引用,以便i现在引用integer0。该列表未修改,因为您从未要求修改l[0]或的任何元素l,而您只修改i

在第二种情况下,i它也只是指向列表中成员之一的名称。那部分没有什么不同。但是,i[0]现在正在调用.__getitem__(0)列表成员之一。同样,i[0] = 'other'会喜欢这样做i.__setitem__(0, 'other')。它并不是i像常规赋值语句那样简单地指向其他对象,实际上是在改变对象i

一个简单的想法就是,Python中的名称始终只是对象的标签。作用域或名称空间就像将名称映射到对象的字典一样。

其他 2022/1/1 18:48:44 有405人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶