您好,登錄后才能下訂單哦!
對于每個變量,python都提供了這三個方法分別獲取變量的三個特征,其中python的內置功能id(),內存地址不一樣,則id()后打印的結果不一樣,因為每一個變量值都有其內存地址,而id是用來反映變量值在內存中的位置,內存地址不同則id不同。
x = 10
print(x) # 獲取變量的變量值
print(id(x)) # 獲取變量的id,可以理解成變量在內存中的地址
print(type(x)) # 獲取變量的數據類型,下章會詳細介紹數據類型
'''
遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書!
'''
x = 10
print(x) # 獲取變量的變量值
10
name1 = 'egon'
name2 = 'nick'
print(name1 == name2) # False
False
'''
遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書!
'''
x = 11
y = x
z = 11
print(x == y) # True
True
print(x is y) # True
True
print(x is z) # True,整數池的原因
True
x = 257
z = 257
print(x is z) # False
False
從上述的打印消息可以看出:id相等的變量,值一定相等,指向的是同一個內存地址;值相等的變量,id不一定相等。
其中在第一次打印print(x is z)
的時候就觸發了上一章講的整數池。這可以理解成python的優化機制,11的值本身不大,并且由于我們快速的再一次使用了11,再由于申請內存空間需要計算機開銷,因此python讓x和z都指向同一個11。因為存不是目的,取才是目的,這樣進行優化的話并不會影響程序的運行。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。