为什么赋值运算符没有创建右值的副本,而是引用了该值(在列表中),并且必须使用切片才能创建一个真正的副本,从而创建独立的对象在一个变化不会影响另一个。这是否与某些特定用法有关,直到现在我错过的语言?python中的参考问题
编辑:我understod的是,在C++
int a = 1;
int b = a;
b = 2; // does not affect a
,所以我也认为这将是同样的道理,因为Python是用C语言开发,并将其与指针照顾它最有可能。用一些简单的代码:
int a = 1;
/*int b = a;*/
int &b = a; /* what python does as I understood, if so why it does that this way?*/
更清楚了吗?
我问的是更多的关于这一点我应该是比较清楚的比较问题,我同意;-)
请阅读“可变”结构。列表(和字典)是特殊的,因为它们是可变的。阅读完“可变”后,请**更新**您的问题以获得更具体的信息。 – 2011-04-07 11:48:01
S.洛特说真话,呼吸正义。 – jathanism 2011-04-07 11:52:30
Python中的变量是对象的引用。这就是它的设计。如果切片感觉很难看,那就是'copy'模块。 – 2011-04-07 11:55:00