Python引用傳值概念與用法例項小結

2022-10-04 20:48:26 字數 697 閱讀 7640

python函式的引數傳值使用的是引用傳值,也就是說傳的是引數的記憶體位址值,因此在函式中改變引數的值,函式外也會改變。

這裡需要注意的是如果傳的引數型別是不可改變的,如string型別、元組型別,函式內如需改變引數的值,則相當於重新新建了乙個物件。

# 新增了乙個string型別的元素新增到末尾

def changelist(lis):

lis.append('hello i am the addone')

print lis

return

lis = [1, 2, 3]

changelist(lis)

print lis

得到的結果是:

[1,2,3, 'hello i am the addone']

[1,2, aatefhzmt3,'hello i am the addone']

def changestring(string):

string = 'i changed as this'

print string

return

string = 程式設計客棧'hello world'

changestring(string)

print string

string是不可改變的型別,得到的結果是:

i changed as this

hello world

傳值與傳引用

python的函式傳值和傳引用,和c c 語言是一樣的。在開始之前,我們有必要分清一下python的一些基礎概念。首先要說的是 變數 與 物件 在python中,型別屬於物件,變數是沒有型別的,這正是python的語言特性,也是吸引著很多pythoner的一點。所有的變數都可以理解是記憶體中乙個物件...

python 傳值與引用問題

和其他語言不一樣,傳遞引數的時候,python不允許程式設計師選擇採用傳值還是傳引用。python引數傳遞採用的肯定是 傳物件引用 的方式。實際上,這種方式相當於傳值和傳引用的一種綜合。如果函式收到的是乙個可變物件 比如字典或者列表 的引用,就能修改物件的原始值 相當於通過 傳引用 來傳遞物件。如果...

傳值 傳值引用

首先對傳值和傳引用要有個基本的概念 傳值 傳遞的是值的副本。方法中對副本的修改,不會影響到呼叫方。傳引用 傳遞的是引用的副本,共用乙個記憶體,會影響到呼叫方。此時,形參和實參指向同乙個記憶體位址。對引用副本本身 物件位址 的修改,如設定為null,重新指向其他物件,不會影響到呼叫方。直接上 更好的理...