python引數傳遞方式

2021-07-26 14:47:16 字數 1264 閱讀 4668

如果函式接收到的引數是乙個可變物件(類型別,列表,字典),就會改變物件的原始值。

如果函式接收到的引數是乙個不可變物件,即基本資料型別(數值型,字串,布林),就不會改變物件的原始值。

無論什麼引數,都是傳引用,只不過基本資料型別的賦值其實是重新構造並指向了乙個新的物件,記憶體位址不一樣,可以用id()來查詢記憶體位址~

對於可變物件(類型別,列表,字典)來說,如果直接x=y的話,x和y的記憶體位址相同;如果只是想簡單賦值,就得用x=y[:]。(如eg1所示)

對於不可變物件(數值型,字串,布林)來說,直接等就可以了,兩種賦值方式並無區別,且x=y[:]這種方式並不是所有資料型別都適用,比如int就會報錯(如eg2所示)

python引數傳遞方式

python中一切皆物件,函式中引數傳遞的是物件的引用。1在函式中改變變數指向的物件,即指向不同物件。當在函式中修改傳遞進來的變數指向另乙個物件時,實參的物件不會改變。def fun num,l,d num 123 l 1,2,3 d print inside num f,l s,d s num,l...

Python 函式引數傳遞方式

引數 自變數 在python裡都是按引用傳遞,也就是傳遞的是變數位址,變數就是位址,沒有型別,而關聯的物件是有型別的 但是對於不可變變數,在函式內修改會申請新的記憶體空間,所以對外層函式沒有影響,對於list變數,相當於操作同一塊記憶體,則會影響外層函式。usr bin python 可寫函式說明 ...

python傳遞引數方式小結

當形參如 arg時表示傳入陣列,當形參如 args時表示傳入字典。def myprint commends,map for comm in commends print comm for key in map.keys print key,map key myprint hello word use...