python 傳值與引用問題

2021-07-06 01:39:31 字數 358 閱讀 3333

和其他語言不一樣,傳遞引數的時候,python不允許程式設計師選擇採用傳值還是傳引用。python引數傳遞採用的肯定是「傳物件引用」的方式。實際上,這種方式相當於傳值和傳引用的一種綜合。如果函式收到的是乙個可變物件(比如字典或者列表)的引用,就能修改物件的原始值--相當於通過「傳引用」來傳遞物件。如果函式收到的是乙個不可變物件(比如數字、字元或者元組)的引用,就不能直接修改原始物件--相當於通過「傳值'來傳遞物件。

python一般內部賦值變數的話,都是傳個引用變數,和c語言的傳位址的概念差不多。可以用id()來查詢記憶體位址

如果a=b的話, a和b的位址是相同的;如果只是想拷貝,那麼就得用 a=b[:]。

!!!注意這一點,這可是可以引起重大錯誤的。。。

傳值與傳引用

python的函式傳值和傳引用,和c c 語言是一樣的。在開始之前,我們有必要分清一下python的一些基礎概念。首先要說的是 變數 與 物件 在python中,型別屬於物件,變數是沒有型別的,這正是python的語言特性,也是吸引著很多pythoner的一點。所有的變數都可以理解是記憶體中乙個物件...

java傳值與傳引用問題總結

1.基本型別與引用型別區別 對於基本型別 int long short double char byte float boolean 變數直接儲存資料的值 對於引用型別,變數儲存的是物件的位址,由此位址指向實際物件。如圖 對於基本型別,直接傳值,方法裡進行重新賦值不會導致原值改變 public cl...

傳值傳引用的問題

include include include include nicai.h include using namespace std class fer private int fengzi int c int fengmu public void setnumber fer we void ad...