Python不是沒有指針,而是任何對象都是指針


首先我們先來看一個基本的例子

 

 Python當中創建一個整形或者其他什么類型的對象的時候,都可以理解為創建了一個指針指向一個已經存在的對象, 就像這個例子:是不是可以理解為a指向了5這個對象

我們再看一個例子

 

 

 這個例子直觀意思是a賦值為1,然后創建了一個變量b,將a的值賦給了b

但是我們查了地址發現,這就是將b指向了a啊,但是這種指針有一個特殊的地方,就是如果修改b的值,只會將b指向一個新的對象,而不會修改a的值

接下來我們再看一個用Python實現一個簡單鏈表

class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
a = ListNode(5) #創建了鏈表尾
b = ListNode(6,a)
c = ListNode(7,b)
head = c #c是鏈表頭結點
p = head
while p != None: #循環打印鏈表節點
print(p.val)
p = p.next
運行結果:

 

 這里就是利用了Python的對象是萬能指針,可以指向任何一個對象

不得不說,Python的這種實現機制其實是極其簡便的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM