Python中 傳遞值 和 傳遞引用 的區(qū)別解析
對(duì)于不可變類型傳遞值(不會(huì)影響原數(shù)據(jù))
不可變類型
對(duì)于可變類型傳遞引用(會(huì)影響原數(shù)據(jù))
不可變類型傳遞引用
python3不可變類型
- Number(數(shù)字)
- String(字符串)
- Tuple (元組)
python3可變類型
- List(列表)
- Dictionary (字典)
- Sets(集合)
參數(shù)傳遞的思考
- 我們聲明的變量名可以看做便簽
- 為變量名賦值的操作可以看做將標(biāo)簽貼到"值"的表面(值可以是可變類型,和不可變類型)
以鏈表中的節(jié)點(diǎn)對(duì)象為例(實(shí)例化的節(jié)點(diǎn)對(duì)象為不可變類型, 但對(duì)象中的屬性是可變的)
鏈表對(duì)象
class NodeList(object):
def __init__(self, val):
self.val = val
self.next = None
# 遍歷鏈表
def traverse_nodes(head):
tmp = head
while tmp:
print("節(jié)點(diǎn)id為:", id(tmp), "節(jié)點(diǎn)的值為:", tmp.val, )
tmp = tmp.next
# 創(chuàng)建鏈表
def create_node_list():
head = NodeList(0);
left_p = head
print("頭節(jié)點(diǎn)id:",id(head), "當(dāng)前節(jié)點(diǎn)id:",id(left_p), "當(dāng)前節(jié)點(diǎn)值:", left_p.val)
left_p.next = NodeList(1);
left_p = left_p.next
print("頭節(jié)點(diǎn)id:",id(head), "當(dāng)前節(jié)點(diǎn)id:",id(left_p), "當(dāng)前節(jié)點(diǎn)值:", left_p.val)
left_p.next = NodeList(2);
left_p = left_p.next
print("頭節(jié)點(diǎn)id:",id(head), "當(dāng)前節(jié)點(diǎn)id:",id(left_p), "當(dāng)前節(jié)點(diǎn)值:", left_p.val)
left_p.next = NodeList(3);
left_p = left_p.next
print("頭節(jié)點(diǎn)id:",id(head), "當(dāng)前節(jié)點(diǎn)id:",id(left_p), "當(dāng)前節(jié)點(diǎn)值:", left_p.val)
return head
def main():
# 創(chuàng)建鏈表
print("==>創(chuàng)建鏈表函數(shù)中:")
head = create_node_list()
print("==>在遍歷函數(shù)中:")
traverse_nodes(head)
if __name__ == '__main__':
main()
總結(jié)
以上所述是小編給大家介紹的Python中 傳遞值 與 傳遞引用 的區(qū)別解析,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
淺析關(guān)于Keras的安裝(pycharm)和初步理解
Keras 是一個(gè)用 Python 編寫的高級(jí)神經(jīng)網(wǎng)絡(luò) API,它能夠以 TensorFlow, CNTK, 或者 Theano 作為后端運(yùn)行。這篇文章給大家介紹Keras的安裝(pycharm)和初步理解,感興趣的朋友一起看看吧2020-10-10
Python高階函數(shù)map()?簡(jiǎn)介和使用詳解
map()?函數(shù)是Python中的內(nèi)置函數(shù),這個(gè)函數(shù)又叫做映射函數(shù),其實(shí)里面具有一個(gè)迭代器的功能,會(huì)依次遍歷可迭代對(duì)象進(jìn)行相關(guān)的操作,這篇文章主要介紹了Python高階函數(shù)map()?簡(jiǎn)介和使用詳解,需要的朋友可以參考下2023-03-03
Python實(shí)現(xiàn)對(duì)字典分別按鍵(key)和值(value)進(jìn)行排序的方法分析
這篇文章主要介紹了Python實(shí)現(xiàn)對(duì)字典分別按鍵(key)和值(value)進(jìn)行排序的方法,結(jié)合實(shí)例形式分析了Python基于sorted函數(shù)及operator庫(kù)進(jìn)行字典排序的相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
Python實(shí)現(xiàn)圖像去噪方式(中值去噪和均值去噪)
今天小編就為大家分享一篇Python實(shí)現(xiàn)圖像去噪方式(中值去噪和均值去噪),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
Python實(shí)現(xiàn)獲取命令行輸出結(jié)果的方法
這篇文章主要介紹了Python實(shí)現(xiàn)獲取命令行輸出結(jié)果的方法,涉及Python命令執(zhí)行及文件讀寫等相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
python通過(guò)cmd創(chuàng)建虛擬環(huán)境的實(shí)現(xiàn)(pip方式)
Python的虛擬環(huán)境是正常的現(xiàn)實(shí)環(huán)境相對(duì)應(yīng)的,在虛擬環(huán)境中安裝的包是與現(xiàn)實(shí)環(huán)境隔離的,本文主要介紹了python通過(guò)cmd創(chuàng)建虛擬環(huán)境的實(shí)現(xiàn),感興趣的可以了解一下2023-11-11
PyCharm連接遠(yuǎn)程服務(wù)器的超級(jí)詳細(xì)教程
Pycharm可以與服務(wù)器建立連接,把相應(yīng)的項(xiàng)目同步到服務(wù)器上,下面這篇文章主要給大家介紹了關(guān)于PyCharm連接遠(yuǎn)程服務(wù)器的超級(jí)詳細(xì)教程,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12

