python的一切是對象
不只是變量是對象,python的一切都是對象
>>> print(300)
300
這個(gè)代碼會做三件事情
1,生成一個(gè)int對象
2,把300的值賦給int對象
3,在console里面打印300
可以從如下代碼里面看出300為int的實(shí)例
>>> type(300)
<class 'int'>
python的賦值是傳遞引用
python的變量是一個(gè)符號,是實(shí)例的引用
>>> n = 300
這個(gè)語句會創(chuàng)造一個(gè)300的int實(shí)例,并且讓變量n指向到這個(gè)實(shí)例

1560501698235.png
使用如下代碼來驗(yàn)證想法
>>> id(300)
140261438010384
>>> n=300
>>> id(n)
140261438010384
>>> type(n)
<class 'int'>
>>> print(n)
300
可以看到 對象300的地址 和 變量n的地址是一樣的
注釋:id() 函數(shù)用于獲取對象的內(nèi)存地址。
python多變量指向同一個(gè)對象
如下代碼
>>> m=n
>>> id(n)
140261438010384
>>> id(m)
140261438010384

1560502218220.png
如果重新給m賦值,那么m會把自己的指針指向新實(shí)例
>>> m=400
>>> id(m)
140261438010352
>>> id(n)
140261438010384

1560502329594.png
如果n再重新賦值,那么會沒有變量指向?qū)嵗?00
>>> n='foo'
>>> id(n)
140261438037944
>>> id(m)
140261438010352

1560502424596.png