python基礎 引數傳遞問題和可變不可變型別

2021-10-04 10:23:43 字數 508 閱讀 3231

在python中,函式的引數傳遞是「值傳遞」還是「引用傳遞」(加引號是因為python中關於引數傳遞不這麼講,但個人覺得可以這麼去理解)要看傳入引數是可變還是不可變物件,當傳入可變物件時即為「引用傳遞」,傳入的為不可變物件則是「值傳遞」,**如下:

x = [1, 2, 3]	#可變引數

print(x) #x = [1, 2, 3]

def fn(x):

x[0] = 2

print(x)

fn(x)

print(x) #x = [2, 2, 3]

x = 1	#不可變引數

print(x) #x = 1

def fn(x):

x= 2

print(x)

fn(x)

print(x) #x = 1

而關於變數是可變不可變:一般來說,常用的資料型別中,int,str,tuple是不可變型別list,dict是可變型別。

python 引數傳遞 Python 引數傳遞

python中的變數 乙個變數是區域性還是全域性,在編譯函式的時候就已經決定,因此讀變數值的時候也不會逐層向外查詢。變數是全域性還是局域,根據如下3條 1.如果函式內部有global語句,那麼它宣告的變數是全域性的。2.如果函式內部有對變數的賦值語句,那麼它是局域的。3.除此之外都是全域性的。注意1...

python 引數傳遞 python引數傳遞

python中函式引數的傳遞是通過 賦值 來傳遞的。但這條規則只回答了函式引數傳遞的 戰略問題 並沒有回答 戰術問題 也就說沒有回答怎麼賦值的問題。函式引數的使用可以分為兩個方面,一是函式引數如何定義,二是函式在呼叫時的引數如何解析的。而後者又是由前者決定的。函式引數的定義有四種形式 1.f arg...

Python中函式引數傳遞問題

先上兩個例子 a 1 deffun a a 2fun a print a 結果為1 fun a 中的a,可以看做函式中的形參,可以用任何字元代替 fun aaa a deffun a fun a print a 結果為 1 所有的變數都可以理解是記憶體中乙個物件的 引用 或者,也可以看似c中void...