python-7-カプセル化と分解

カプセル化と分解

  • パッケージ
    • 複数の値をコンマで区切り、それらを組み合わせる
    • 基本的に、タプルを返しますが、括弧は省略します
    • Python独自の文法、多くの言語から学び、学ぶ#たとえばES6
    • t1 =(1,2)#タプルとして定義
    • t2 = 1,2#タプルに1と2をパック
    • タイプ(t1)
    • タイプ(t2)

タプルはリストよりも単純で、メモリ内のリストよりも軽いため、リストは閉じられます

a = 4
b = 5
temp = a
a = b
b = temp
a,b=b,a 
# 上面语句当中,等号右边使用了封装,而左边就使用了解构
解体
  • 線形構造の要素を解き、それらを順番に他の変数に割り当てます

  • 左側で受け入れられる変数の数は、右側でアンラップされる要素の数と同じでなければなりません

    • lst = [3,5]
    • first、second = lst
    • 印刷(最初、2番目)
a,b=1,2
a,b=(1,2)
a,b=[1,2]
a,b=[10.20]
a,b={10.20}
a,b=('a':10,'b':20) # 非线性结构也可以解构
a,b={10,20,30}
a,*b={10,20,30}
[a,b]=(1,2)
[a,b]=10,20
(a,b)={30,40}
python3分解
  • 使用して、*变量名受け取ったが、単独で使用することはできません
  • 彼らはされている*变量名リストを形成するために収集します
    • lst = list(range(1,101,2))
    • head、* mid、tail = lst
    • * lst2 = lst
    • * body、tail = lst
    • head、* tail = lst
    • head,*m1,*m2,tail=lst
    • head,*mid,tail= * abcdefghijklmn
    • タイプ(中)
変数を破棄する
  • これは規約であり、書面による合意ではなく、標準です
  • 変数を気にしない場合は、変数名を次のように定義できます_
  • _これは有効な識別子であり、有効な変数としても使用できます。
  • ただし、アンダースコアとして定義されるのは、このデータを使用する必要があることを明確に知らない限り、使用されないことを期待することです
    • lst=[9,8,7,20]
    • first,*second=lst
    • head,*_,tail=lst
    • プリント(ヘッド)
    • プリント(テール)
    • #_これは正当な識別子です。下線が表示されている場合、この変数は使用したくないだけです。
    • print(_)
lst=[9,8,7,20]
first,*second=lst
_,*_,tail=lst
print(_)
print(tail)
print(_)
  • まとめ
    • _この変数自体にはセマンティクスと可読性がないため、人間による使用を目的としていません。
    • Pythonの多くのライブラリは、この変数を使用しています。この変数は非常に広く使用されています。
    • 変数のスコープを指定せず_にライブラリとの_競合を引き起こさないでください
  • 練習
    • lst = list(範囲(10))#そのようなリスト、2番目、4番目、最後から2番目を取り出します
練習
  • lst=[1,(2,3,4),5]4から抽出
  • 環境変数JAVA_HOME=/usr/bin、変数名とパスを返す
  • [1,9,8,5,6,7,4,3,2]バブルメソッドを使用してリストを並べ替えます。カプセル化と構造を使用してデータを操作する必要があります。
lst=[1,(2,3,4),5]
a,(b,c,d),e=lst
print(a,b,c,d,e)

_,(*_,val),*_=lst
print(val)

_,[*_,val],*_=lst
print(val)
key,_,val='JAVA_HOME=/usr/bin'.partition('=')
print(key)
print(val)
  • まとめ
    • 分解はPythonが提供する優れた機能であり、複雑なデータ構造の値を簡単に抽出できます。
    • _使用、それがより便利になります!

おすすめ

転載: www.cnblogs.com/gnuzsx/p/12732889.html