解構與封裝

2021-07-25 12:57:20 字數 2835 閱讀 7483

解構

解構:按照元素的順序,把線性結構的元素賦值給變數

>>> 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一樣都是元組....