Python學習 動態型別簡介

2021-08-04 09:48:21 字數 822 閱讀 7861

變數、物件和引用:

a = 3(不需要提前宣告變數)

變數在賦值的時候才被建立,它可以引用任何型別的物件,並且必須在引用之前賦值。

他們三者之間的關係:

變數是乙個系統表的元素,擁有指向物件的連線的空間;

物件是分配的一塊記憶體,有足夠的空間去表示他們所代表的值;

引用是自動形成的從變數到物件的指標;

變數名沒有型別,型別屬於物件而不是變數名,賦值只是將變數修改為不同物件的引用。

共享引用:

>>>a = 3

>>>b = a

這兩句話執行之後的效果就是a指向了物件3,b也指向了物件3;

>>>a = 『spam』

這句話執行 之後的效果就是a指向了物件spam;

>>>l1 = [2,3,4]

>>>l2 = l1

現在l1和l2都指向了同乙個列表[2,3,4],如果這個時候修改了l1中的某個值;

>>>l1[0] = 24

>>>l2

[24,3,4]

因為l1和l2都指向了同乙個物件,所以對l1的修改也會修改掉其他的引用;

如果我們不想這樣的情況發生,就需要python去拷貝物件,而不是建立引用。拷貝的方法有很多,其中最常用拷貝列表的方法就是從頭到尾的分片。

>>>l2 = l1[:]

這樣修改了以後,l1的修改就不會對l2有影響,因為l2引用的是l1的乙個拷貝,也就是他們指向了不同的記憶體區域。

==和is:

==表示的是檢測的兩個被引用物件是否含有相同的值,而is表示的是兩個被引用物件是否精確的同一(例如,兩個變數名精確的指向同乙個物件)

python的動態型別簡介

本篇簡單討論python的動態型別,它對於入門python開發來講是必不可少的。首先來看幾行只有動態型別語言才可以這麼寫的 a 3 a hello,python a 1,2,3,4,5 我先後給a賦值了數字型別 字串型別和列表型別,那麼問題來了,a到底是什麼型別?有人可能會覺得,a最後被賦值為列表型...

動態型別簡介(3)

概念性的知識 python中型別是執行過程中自動決定的,而不是通過 宣告,所以沒有必要事先宣告 引用 從變數到物件的連線稱作引用,也就是說,引用是一種關係,以記憶體中的指標的形式實現 乙個物件賦多值過程 型別屬於物件,而不屬於變數,重新賦值時,物件在記憶體中占用的空間就會被 的空間被放入自由空間池,...

Python學習筆記(四) 動態型別

以mark lutz著的 python學習手冊 為教程,每天花1個小時左右時間學習,爭取兩周完成。寫在前面的話 2013 7 17 19 00 學習筆記 1,在python中,變數總是乙個指向物件的指標,而不是可改變的記憶體區域的標籤 給一變數賦值乙個新的值,並不是替換了原始的物件,而是讓這個變數去...