python中傳值和傳地址問題

在python中,還沒有對這個知識點(diǎn)有一個詳細(xì)的定義,很模糊的說明了,通過下面代碼,可以觀察出來,什么時候傳的是值,什么時候傳的是地址

有時候會發(fā)現(xiàn)自己的數(shù)據(jù)發(fā)生變化,可能就是這個原因,python的創(chuàng)作者,在定義的時候,并沒有像java/c++深挖,比較模糊的說明了,這樣一個關(guān)于值和地址的問題,也有我的知識不夠?qū)拸V,沒有涉及到這方面知識,如有偏差,敬請指正!

# 傳值和傳地址的區(qū)別
# 對于簡單的數(shù)值,采用傳值操作,即在函數(shù)內(nèi)對參數(shù)的操作不影響外面的變量
# 對于復(fù)雜變量,采用傳地址操作,此時函數(shù)內(nèi)的參數(shù)和外部變量是同一份內(nèi)容,
# 任何地方對此內(nèi)容的更改都影響另外的變量或參數(shù)的使用

def a(n):
    n[2] = 300
    print(n)
    return None

def b(n):
    n += 100
    print(n)
    return None

an = [1,5,6,5,7,9]
bn = 5


print(an)
a(an)
print(an)


print(bn)
b(bn)
print(bn)

結(jié)果:

[1, 5, 6, 5, 7, 9]
[1, 5, 300, 5, 7, 9]
[1, 5, 300, 5, 7, 9]
5
105
5

通過結(jié)果觀察:
對于簡單的數(shù)值,采用的是傳值操作,即在函數(shù)內(nèi)對參數(shù)的操作不影響外面的變量
對于復(fù)雜的變量,采用傳地址操作,此時函數(shù)內(nèi)的參數(shù)和外部變量是同一份內(nèi)容,任何地方對此內(nèi)容的更改都會影響另外的變量或參數(shù)的使用
小伙伴們,注意啦!

轉(zhuǎn)載于:https://www.cnblogs.com/cswzp/p/9995945.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容