python中的引用怎么理解_Python函数通过引用调用
基本上有三種'函數(shù)調(diào)用':通過價值
通過引用傳遞
通過對象引用傳遞
Python是一種PASS-BY-OBJECT-REFERENCE編程語言。
首先,重要的是要理解一個變量,變量(對象)的值是兩個獨(dú)立的東西。變量'指向'對象。變量不是對象。再次:
變量不是對象
示例:在以下代碼行中:>>> x = []
[]是空列表,x是指向空列表的變量,但x本身不是空列表
將變量(x,在上述情況下)視為一個框,將變量([])的“值”視為框內(nèi)的對象。
通過對象引用(python中的情況):
這里,“對象引用按值傳遞”。def append_one(li):
li.append(1)x = [0]append_one(x)print x
這里,語句x = [0]產(chǎn)生一個指向?qū)ο骩0]的變量x(box)
在被調(diào)用的函數(shù)上,創(chuàng)建了一個新的li。li的內(nèi)容是SAME作為box x的內(nèi)容。兩個框都包含相同的對象。也就是說,兩個變量都指向內(nèi)存中的同一個對象。因此,li指向的對象的任何更改也將由x指向的對象反映。
總之,上述計劃的產(chǎn)出將是:
[0,1]
注意:
如果在函數(shù)中重新分配變量li,則li將指向內(nèi)存中的單獨(dú)對象。但是,x將繼續(xù)指向它之前指向的內(nèi)存中的同一個對象。
例:def append_one(li):
li = [0, 1]x = [0]append_one(x)print x
該計劃的輸出將是:
[0]
通過參考:
調(diào)用函數(shù)的框傳遞給被調(diào)用函數(shù)。隱含地,框的內(nèi)容(變量的值)被傳遞給被調(diào)用的函數(shù)。因此,對被調(diào)用函數(shù)中的框內(nèi)容的任何更改都將反映在調(diào)用函數(shù)中。
通過價值:
在被調(diào)用函數(shù)中創(chuàng)建一個新框,并將來自調(diào)用函數(shù)的框內(nèi)容的副本存儲到新框中。
希望這可以幫助。
總結(jié)
以上是生活随笔為你收集整理的python中的引用怎么理解_Python函数通过引用调用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 日本“躬匠精神”!制造业巨头川崎重工承认
- 下一篇: python特征递归消除