Python的函式傳參

2021-10-06 02:59:15 字數 537 閱讀 7052

python的函式傳參不分傳值或是傳引用,它傳入的是物件的id,即物件的記憶體位址。所以可以修改這個記憶體位址上的資料,但是無法改變這個記憶體位址,即無法用新的物件來替換舊的物件(賦值不會修改傳入的引數)。

例子:假如有乙個函式,需要實現將傳入的list列表反轉的功能:

def

test

(nums)

: nums = nums[::

-1]# 使用列表切片,賦值給nums

由於列表切片會產生乙個新的物件,擁有乙個新的id,所以上面的**相當於將乙個新的id賦予乙個舊的id,但是這個引數的id是不會改變的,所以推出函式或並不會對nums造成影響。

而如果使用.reverse()函式

def

test

(nums)

: nums.reverse(

)# 使用list的reverse函式

由於並沒有改變nums的id,只是對這個位址上儲存的物件做了一些修改,這是允許的,退出函式後nums已經被反轉。

python 函式傳參 傳參和傳引用

首先還是應該科普下函式引數傳遞機制,傳值和傳引用是什麼意思?函式引數傳遞機制問題在本質上是呼叫函式 過程 和被呼叫函式 過程 在呼叫發生時進行通訊的方法問題。基本的引數傳遞機制有兩種 值傳遞和引用傳遞。值傳遞 passl by value 過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在...

Python函式傳參

首先還是應該科普下函式引數傳遞機制,傳值和傳引用是什麼意思?函式引數傳遞機制問題在本質上是呼叫函式 過程 和被呼叫函式 過程 在呼叫發生時進行通訊的方法問題。基本的引數傳遞機制有兩種 值傳遞和引用傳遞。值傳遞 passl by value 過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在...

python 函式傳參

函式的好處 1.保持一致性 2.可重用 3.可擴充套件 函式的返回值 1.空,返回none 2.有乙個物件,返回當前物件 3.有多個物件,返回元組 tuple import time 定義函式,列印日誌時間 deflogger time format y m d x time current tim...