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

2021-06-16 15:46:38 字數 1486 閱讀 1118

以mark lutz著的《python學習手冊》為教程,每天花1個小時左右時間學習,爭取兩周完成。 --- 寫在前面的話

2013-7-17 19:00 學習筆記

1,在python中,變數總是乙個指向物件的指標,而不是可改變的記憶體區域的標籤:給一變數賦值乙個新的值,並不是替換了原始的物件,而是讓這個變數去引用完全不同的乙個物件。例如:

a = 3;

b = a;

a += 2;

print a,b

結果為:

5 3
但是對於列表、字典以及通過class定義的物件,則存在共享引用的情況。例如:

l1 = [1,2,3]

l2 = l1

l1[0] = 24

print l1,l2

結果為:

[24, 2, 3] [24, 2, 3]
如果需要引用不同的物件,則需要拷貝物件。這可以通過分片技術或copy模組來實現。例如:

l1 = [1,2,3]

l2 = l1[:] #slice

l1[0] = 24

print l1,l2

結果為:

[24, 2, 3] [1, 2, 3]

import copy

l1 = [1,2,3]

l2 = copy.copy(l1)

l3 = copy.deepcopy(l1) # copy all nested parts

l1[0] = 24

print l1,l2,l3

結果為:

[24, 2, 3] [1, 2, 3] [1, 2, 3]

2,==可以判斷值是否相等,而is則可以判斷兩個變數是否指向了同乙個物件。例如:

m = [1,2,3]

l = m

print m==l,m is l

x = [1,2,3]

y = [1,2,3]

print x==y,x is y

結果為:

true true

true false

但是要注意,對於小的整數和小的字串,python有快取機制,不用的時候不會立即**。例如:

m = 128

l = 128

print m==l,m is l

x = 'hello world'

y = 'hello world'

print x==y,x is y

結果為:

true true

true true

Python學習筆記6 動態型別

參考部落格 python高階09 動態型別 python深入06 python的記憶體管理 都是非常棒的文章 其實這都是我前兩天通過手機看的部落格,感覺get到了新知識 新技能,今天早上挖的坑,因為上午有課 電子技術課程設計,嵌入式系統實驗室,學習stm32,以後也許會寫這些東西 下午沒課了,來填之...

python學習筆記(四) 系列資料型別

第五章 系列資料型別 主要注意點,注意使用python內建的函式,再具體使用過程中還要注意格式等的細節。第五章 系列資料型別 5.1 python系列資料概述 a 陣列 b python內建的系列資料型別 元組tuple 列表list 字串str 位元組資料bytes bytearray 其中,元組...

Python小白學習筆記四(容器型別 1 )

python小白學習筆記四 容器型別 1 通用操作 數 算符 用於拼接兩個容器 用原容器與右側容器拼接,並重新繫結變數 重複生成容器元素 用原容器生成重複元素,並重新繫結變數 依次比較兩個容器中元素,一但不同則返回比較結果。語法 1 容器通用操作 2 數 算符 3 兩個容器中所有元素拼接 4 str...