python變數傳遞 Python引數傳遞

2021-10-12 11:24:43 字數 1167 閱讀 4201

在 python 中,型別屬於物件,變數是沒有型別的:

a=[1,2,3]a="runoob"

以上**中,[1,2,3]是 list 型別,"runoob"是 string 型別,而變數 a 是沒有型別,她僅僅是乙個物件的引用(乙個指標),可以是指向 list 型別物件,也可以是指向 string 型別物件。

可更改(mutable)與不可更改(immutable)物件

在 python 中,strings, tuples, 和 numbers 是不可更改的物件,而 list,dict 等則是可以修改的物件。

不可變型別:變數賦值a=5後再賦值a=10,這裡實際是新生成乙個 int 值物件 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。

可變型別:變數賦值la=[1,2,3,4]後再賦值la[2]=5則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。

python 函式的引數傳遞:

不可變型別:類似 c++ 的值傳遞,如 整數、字串、元組。如fun(a),傳遞的只是a的值,沒有影響a物件本身。比如在 fun(a)內部修改 a 的值,只是修改另乙個複製的物件,不會影響 a 本身。

可變型別:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響

python 中一切都是物件,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳可變物件。

python 傳不可變物件例項

#!/usr/bin/python3

def changeint( a ):

a = 10

b = 2

changeint(b)

print( b ) # 結果是 2

例項中有 int 物件 2,指向它的變數是 b,在傳遞給 changeint 函式時,按傳值的方式複製了變數 b,a 和 b 都指向了同乙個 int 物件,在 a=10 時,則新生成乙個 int 值物件 10,並讓 a 指向它。

傳可變物件例項

可變物件在函式裡修改了引數,那麼在呼叫這個函式的函式裡,原始的引數也被改變了。例如:

傳入函式的和在末尾新增新內容的物件用的是同乙個引用。故輸出結果如下:

函式內取值:[10,20,30,[1,2,3,4]]函式外取值:[10,20,30,[1,2,3,4]]

python變數傳遞 python變數傳遞

python變數傳遞 數值 num 1 123 num 2 num 1 改變num 2值前 print num 1 num 2 format num 1,num 2 num 2 0 改變num 2值後 print num 1 num 2 format num 1,num 2 輸出num 1 123,...

python傳遞變數 python變數傳遞

python變數傳遞 數值 num 1 123 num 2 num 1 改變num 2值前 print num 1 num 2 format num 1,num 2 num 2 0 改變num 2值後 print num 1 num 2 format num 1,num 2 輸出num 1 123,...

python中var是什麼變數 Python 變數

1.python的變數是什麼 變數是用來儲存電腦程式中的資訊,唯一的目的是將資料儲存在記憶體中。2.python變數的組成 變數由字母 數字 下劃線組成 變數的第一位不能是數字,可以是字母或下劃線 python中的關鍵字不能作為變數。python中的關鍵字 and as assert break c...