1.でisinstanceの和タイプ:
そして==記号は、同じIDかどうかを知ることは、オブジェクトではなく、メモリアドレスを参照し、あります
統合されたチェーン
クラスA: パス クラスB(A): パス B = B() プリント(でisinstance(B、B)) プリント(でisinstance(B、A)) プリント(タイプ(b)は、あるB) プリント(ID(タイプ(B))、ID(B)) #2943616512536 2943616512536
2.クラス変数やオブジェクト変数:
自己==クラスの例は、実際には、自己の理由の理由クラスである、等しい渡し、= A()と等価です。
クラスA: AA = 1 デフ__init __(自己、x、y)は: self.x = X self.y = と = A(2、3 ) A.aa = 11 a.aa = 100 印刷(斧、AY、a.aa) #2 3 1 印刷(A.aa) #印刷(アックス、あぁ)#例外 #2 3 100 #11
注意:シーケンシャル検索は、ボトムアップ見つけることです
注意:クラス変数は唯一のクラスを介して変更することができ、変更は例を挙げて行けば、それだけで一緒に新しい変数を開きますが、実際には、クラス変数は変更しましたが、変数になりそうすることはできません。変数クラスは、すべてのメンバーによって共有されています。
3.クラスとインスタンスプロパティの順序を探します:
方法としては、又は内部で定義します。
ポイントは、この継承は、親クラスの深さを見ているinit__、我々はC3を使用して、MROアルゴリズムを使用しPY3 .__クラス名の前に、実際には、深さと幅を探すスーパー()検索すると、C3ルックアップ法の一種です。
クラスA: 名前は = " A " デフ__init __(自己): self.name = " OBJ " = A() 印刷(a.name) #プリントOBJ変数名が戻って行くことができません
クラスD: パス クラスC(D): パス クラスB(D): パス クラスA(B、C)。 パス 印刷(.__ mro__) #( < クラス ' __main __。A ' >、< クラス ' __main __。B ' >、< クラス ' __main __。C ' >、< クラス ' __main __。D ' >、< クラス ' オブジェクト' >)
覚えておいてください:あなたは__MRO__と継承チェーンの関係を表示することができます。
覚えておいてください:PY2、書き込みオブジェクトは、オブジェクトを継承する書き込みませんPY3をオブジェクトを持っている必要があり、それは新しいクラスがあります。
4.静的メソッド、クラスメソッド、オブジェクトメソッド(方法例)