解構
解構:按照元素的順序,把線性結構的元素賦值給變數
>>> x = 1
>>> y = 2
>>> tmp = x
>>> x = y
>>> y = tmp
>>>print(y,x)
>>> lst = [1,2]
>>> first = lst[0]
>>> second = lst[1]
>>> first,second = lst #解構
>>> print first,second
1 2
解構的變化 2.x 版本不支援
>>> head,tail = [1,2,3] #變數和元素(個數)必須匹配
traceback (most recent call last):
file "", line 1, in
valueerror: too many values to unpack (expected 2)
加* 號表示匹配多個元素
>>> lst = list(range(100))
>>> head,*mid,tail = lst
>>> head
0>>> tail 99
>>> lst =
>>> lst = list(range(10))
>>> head,*tail = lst
>>> tail
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> head0
>>> first,second,*other = lst 支援這種格式
>>> first,second,*other,last = lst 支援這種格式
>>> *m =lst 不支援這種格式 #加*變數,不能單獨出現
file "", line 1
syntaxerror: starred assignment target must be in a list or tuple
>>>
* 是非貪婪的模式,如果lst是一堆食物,只夠兩個人吃,那麼它吃不飽也要讓兄弟吃飽
>>> lst = [1,2]
>>> head,*mid,tail = lst
>>> head
1>>> tail
2>>> mid
>>> tuple = (1,2,3,4,5,6) #帶* 的不管等號右邊是什麼型別,都返回的是列表
>>> f,*t = tuple
>>> t
[2, 3, 4, 5, 6]
>>>
總結:元素按照順序賦值給變數
變數和元素(個數)必須匹配
加*變數,可以匹配多個元素(任意個數)
加*變數,不能單獨出現
帶* 的不管等號右邊是什麼型別,都返回的是列表
python的乙個慣例是,使用單個_表示丟棄該變數
單個下劃線也是python合法的識別符號,但是如果不是要丟棄乙個變數,通常不要用單個下劃線表示乙個有意義的變數
>>> head,*_,tail = lst
>>> head
0>>> tail
9>>> _
[1, 2, 3, 4, 5, 6, 7, 8]
多層次解構
>>> lst = [1,(2,3),4]
>>> _,[*_,tail],*_ = lst 多層次解構
>>> tail
3>>> _,_,tail,*_ = lst 不分層次解構,將(2,3)看成乙個元素
>>> tail
4
非常複雜的資料結構,多層次巢狀的線性結構,可以使用解構快速提取其中的元素
最常用的方法:
>>> key,_,value = "env = prod".partition('=')
>>> key
'env '
>>> value
' prod'
封裝
封裝的定義:定義乙個元組,省略小括號 ,封裝出來的一定是元組
t1 = 1,2 等同於 t1 = (1,2)
>>> t1 = 1,2
>>> type(t1)
>>>
物件導向的程式設計中,某個類把所需要的資料(也可以說是類的屬性)和對資料的操作(也可以說是類的行為)全部都封裝在類中,分別稱為類的成員變數和方法(或成員函式)。這種把成員變數和成員函式封裝在一起的程式設計特性稱為封裝。
封裝與解構(Python)
將多個值使用逗號分割,組合在一起 本質上返回乙個元組,只是省掉了小括號 t1 1 2 定義為元組 t2 1,2 將t1和t2封裝成元組把線性結構的元素拆開,並順序的賦給其他變數 左邊接納的變數數要和右邊解開的元素個數一致 線性結構和非線性結構都能解構 解構數需要等於封裝數!使用 變數名接受,但不能但...
python 封裝 解構
封裝 封裝,如1,2會將其封裝成元組,會把等號右邊零散的元素封裝成線性結構 t1 1,2 print t1 t2 1,2 print t2 輸出 1,2 1,2 封裝和解構的好處 封裝和解構的好處 a 2b 3 temp a a bb temp print a print b print 等價於 a...
Python封裝和解構
封裝 將多個值使用逗號分割,組合在一起 本質上返回乙個元組 tuple 只是省略了小括號 python特有語法,被很多語言學習和借鑑 舉例 t1 1 2 定義元組 t2 1,2 將等號右邊的1,2封裝成元組,然後賦值給等號左邊的t2 type t1 type t2 可以發現,t2和t1一樣都是元組....