方法の基礎となるディスクリプタであって、最もpyhonクラス特性を実現することができる:クラスメソッド、staticmethd、プロパティ、__slots__
記述子は、クラスの属性クラスを定義するように修正されます
クラスLazyproperty: DEF __init__ (セルフ、FUNC): プリント(' >>>>> ' 、FUNC) self.func = FUNC DEFの __get__(セルフ、例えば、所有者): #自己Lazyproperty()で生成されたオブジェクト を印刷(' 方法を得る' ) 戻り self.func(インスタンス)#の配信自体の例を意味するインスタンスは、所有者クラスのインスタンスが生成され たクラスルーム: #1 記述子は、クラスを定義するように修正された #1 = Lazyproperty(エリア)#記述子エリア操作が、次の@lazypropertyは同じことやっている DEF __init__を(セルフは、名前、幅、長さ): self.name = 名前 self.width = 幅 self.length = 長さ #静的プロパティ@ @Property#が、実際にプロパティに相当インスタンス化を行うエリア=プロパティ(エリア)で実行されています。関数であってもよい、または、ベースの装飾効果を達成することができる、クラス記述子のプロパティ=エリア(エリア)に増加を達成することができる @Lazyproperty DEF エリア(自己): 戻り self.width * self.length R1 =ルーム(" CS "、2,4 ) 印刷(r1.area) #呼び出しがLazyproperty(面積)に割り当てられた領域を返し、非トリガデータ記述子 #の印刷(r1.area.func(R1))#純粋にマニュアルトリガラン
"" "" "" "" ""
方法を取得
8