爲什麼賦值運算符沒有創建右值的副本,而是引用了該值(在列表中),並且必須使用切片才能創建一個真正的副本,從而創建獨立的對象在一個變化不會影響另一個。這是否與某些特定用法有關,直到現在我錯過的語言?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