Python傳參機制

2021-09-01 18:03:47 字數 643 閱讀 2266

最近在寫用python寫乙個project,由於半吊子python水平,著實踩了不少坑…

從這一篇開始,以後遇到坑就積累下來

望指正。

python的傳參機制與我之前學習的語言中傳值、傳引用都不一樣,也可以說是將二者相結合

python傳參的時候傳的的是物件

對於不可變變數,比如int 、float 、tuple等,函式內部改變值並不會改變外部的值,所以可以放心傳參進去,return回來:

def double (a) :

a = a + a

return a

a = 1

b = double(a)

>> a = 1 # a 的值不會改變

>> b = 2

對於可變變數,比如list等,就很麻煩,傳的是引用,而不是list的複製,如果用id()在函式內外測試,會發現id是一樣的,即他們都指向了同乙個記憶體位址,改變就會都改變

def double (a) :

a[0] = a[0] + a[0]

a = [1]

double(a)

>> a = [2] # a 的值改變

但很多時候,我們希望的是直傳乙個複製進去,不想讓函式的執行影響到外部的變數

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...