您好,登錄后才能下訂單哦!
這篇文章給大家介紹Python中傳遞值與傳遞引用有什么不同,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
對于不可變類型傳遞值(不會影響原數據)
不可變類型
對于可變類型傳遞引用(會影響原數據)
不可變類型傳遞引用
python3不可變類型
Number(數字)
String(字符串)
Tuple (元組)
python3可變類型
List(列表)
Dictionary (字典)
Sets(集合)
參數傳遞的思考
我們聲明的變量名可以看做便簽
為變量名賦值的操作可以看做將標簽貼到"值"的表面(值可以是可變類型,和不可變類型)
以鏈表中的節點對象為例(實例化的節點對象為不可變類型, 但對象中的屬性是可變的)
鏈表對象
class NodeList(object): def __init__(self, val): self.val = val self.next = None # 遍歷鏈表 def traverse_nodes(head): tmp = head while tmp: print("節點id為:", id(tmp), "節點的值為:", tmp.val, ) tmp = tmp.next # 創建鏈表 def create_node_list(): head = NodeList(0); left_p = head print("頭節點id:",id(head), "當前節點id:",id(left_p), "當前節點值:", left_p.val) left_p.next = NodeList(1); left_p = left_p.next print("頭節點id:",id(head), "當前節點id:",id(left_p), "當前節點值:", left_p.val) left_p.next = NodeList(2); left_p = left_p.next print("頭節點id:",id(head), "當前節點id:",id(left_p), "當前節點值:", left_p.val) left_p.next = NodeList(3); left_p = left_p.next print("頭節點id:",id(head), "當前節點id:",id(left_p), "當前節點值:", left_p.val) return head def main(): # 創建鏈表 print("==>創建鏈表函數中:") head = create_node_list() print("==>在遍歷函數中:") traverse_nodes(head) if __name__ == '__main__': main()
關于Python中傳遞值與傳遞引用有什么不同就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。