對于不可變類型傳遞值(不會影響原數(shù)據(jù))

不可變類型
對于可變類型傳遞引用(會影響原數(shù)據(jù))

不可變類型傳遞引用
python3不可變類型
python3可變類型
參數(shù)傳遞的思考
以鏈表中的節(jié)點對象為例(實例化的節(jié)點對象為不可變類型, 但對象中的屬性是可變的)

鏈表對象
class NodeList(object): def __init__(self, val): self.val = val self.next = None# 遍歷鏈表def traverse_nodes(head): tmp = head while tmp: print("節(jié)點id為:", id(tmp), "節(jié)點的值為:", tmp.val, ) tmp = tmp.next# 創(chuàng)建鏈表def create_node_list(): head = NodeList(0); left_p = head print("頭節(jié)點id:",id(head), "當前節(jié)點id:",id(left_p), "當前節(jié)點值:", left_p.val) left_p.next = NodeList(1); left_p = left_p.next print("頭節(jié)點id:",id(head), "當前節(jié)點id:",id(left_p), "當前節(jié)點值:", left_p.val) left_p.next = NodeList(2); left_p = left_p.next print("頭節(jié)點id:",id(head), "當前節(jié)點id:",id(left_p), "當前節(jié)點值:", left_p.val) left_p.next = NodeList(3); left_p = left_p.next print("頭節(jié)點id:",id(head), "當前節(jié)點id:",id(left_p), "當前節(jié)點值:", left_p.val) return headdef main(): # 創(chuàng)建鏈表 print("==>創(chuàng)建鏈表函數(shù)中:") head = create_node_list() print("==>在遍歷函數(shù)中:") traverse_nodes(head)if __name__ == '__main__': main()總結
以上所述是小編給大家介紹的Python中 傳遞值 與 傳遞引用 的區(qū)別解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網(wǎng)網(wǎng)站的支持!
新聞熱點
疑難解答
圖片精選