#1 A: クラスP: __ageは = 30の #プライベート静的プロパティ DEF __init__ (セルフ、名): 。自己__name__ =名 #プライベート属性:フロントダブルと属性名は私有財産を強調しました。 DEF :(セルフ)get_name 返し自己を。__name__ DEF __func(セルフ): #プライベートメソッド 印刷(' プライベートメソッド' ) P = P(' アレックス' ) #の印刷(P .__名)#エラー、クラスの外ではなく、私有財産を呼び出すために、このメソッドを使用します。 印刷(p._P__name) #アレックス、._ __属性名オブジェクトのクラス名を使用して私有財産にのみ呼び出すことができます。 印刷(p.get_name()) #アレックスは、この方法は、私有財産を返すことができます呼び出します。 印刷(p._P__age) #30は、プライベート静的プロパティは、名前__ ._クラスのプロパティ名で呼び出すことが課題です。 印刷(p._P__func()) #プライベートメソッド()オブジェクトのクラス名__ ._メソッド名によって呼び出します。 #2: #プライベートな役割の概念:1つの保護属性は、呼ばれたり変更されたクラスの外にそれをさせないでください。2.サブクラスによって継承されたくありません。 #親クラスのプライベート静的プロパティ、私有財産、プライベートメソッドは、サブクラスによって継承することはできません。 クラスのゲーム: __country = 「CHINA 」 #プライベート静的プロパティは、 DEF __init__(セルフ、名前を): #私有財産 。自己__name__ = 名 DEF __aggr(セルフ): #プライベートメソッド 印刷(' 攻撃は100である' ) クラス息子(ゲーム):合格 S =息子(' アレックス' ) 印刷(s._Son__country) #のエラー を印刷(s._Son__name) #のエラー を印刷( s._Son__aggr()) #のエラー #3:@Property #のスーパーマーケットの商品: クラス品: DEF __init__(セルフ、名前,.価格、add_price、割引): #の商品名、購入価格、運賃、割引 self.name = 名 セルフ。__price = 。価格 self.add_price = add_price self.discount = ディスカウント @Propertyの #この方法デコレータ変装プロパティ。 DEF 価格(セルフ): リターン(自己。__price + self.add_price)* self.discount G =製品(' りんご'、5,3,0.8 ) 印刷(g.price) #6.4、属性を呼び出すのと同じメソッドを呼び出します()括弧を省略します。 #第四に、切除調査の私有財産: #4.1プライベートプロパティを削除します:オブジェクトが削除された私有財産の後、私有財産のクラスも削除されます。 クラスの製品: DEF __init__(自己、名前,.価格): self.name = 名前の 自己。__price = 価格。 @Propertyは DEF 価格(セルフ): リターン。自己__price #1 。戻り値が等しい自己.__価格価格() @ price.deleter #上下2彼らはここに同じ名前の価格で私有財産を削除することができます前に、メソッド名メソッドがなければなりません。 DEF 価格(セルフ): デル。自己__price #セルフ.__価格等しいapple.price。 アップル製品=(' りんご'、5。 ) 印刷(apple.price) デル apple.price #デリータの上にトリガデルは、その後、私有財産を削除するために価格のメソッドを呼び出します。 印刷(apple.price) #「製品」オブジェクトの属性がNO「_Goods__price」が、オブジェクトの私有財産が削除されている説明しました。 印刷(apple._Goods__price) #プライベートプロパティが削除されているように「製品」オブジェクトの属性がNO「_Goods__price」があります。 #4.2のプライベートプロパティを変更:変更は、オブジェクトの私有財産が変更され、共有され、私有財産のクラスが変更されます。 クラスの製品: DEF __init__ (セルフ、名前、価格): self.name = 名前 。自己__price = 価格 @Propertyの DEFの価格(セルフ): リターン。自己__priceの #は、価格の値に等しい自己.__価格を返します @ price.setter #メソッド名と二つの方法の下では、ここでは、私有財産の価格と同じ名前でのみ変更する必要があります。 DEF 価格(セルフ、NEW_PRICE):。 。自己__price = NEW_PRICE #。自己.__価格等しいapple.price アップル(=製品' りんご'。、5 ) 印刷(apple.price) #5 。apple.price 8 = #のメソッドを装っ性質、これは、プロパティの変更のように見え、その後、8 NEW_PRICEを渡します。この操作では、個別に割り当てられているのではなく、変更することです。 印刷(apple.price) #8、変更が共有され、プライベートオブジェクトクラスの属性とプライベート属性が8に変更されています。 印刷(apple._Goods__price) #8、クラス8は、私有財産に変更されます。 #4.3プライベート静的プロパティを変更:同じ変更を私有財産の原則を変更しますが、インスタンス化オブジェクトを頼りにする必要があります。アップルの割引、変更されたすべての商品の割引が得られ、それは無理がある、変更されています。 クラスの製品: __discount = 1つの#のプライベート静的プロパティ @Property DEF ディスカウント(セルフ): 返すグッズ。__discountの #の製品.__ディスカウントディスカウント= @ discount.setter DEF ディスカウント(セルフ、NEW_DISCOUNTを): 。製品__discount = NEW_DISCOUNT #製品.__ディスカウント= apple.discount アップル = 製品() 印刷(apple.discount) #1 apple.discount = 0.8 印刷(apple.discount) #0.8 印刷(apple._Goods__discount) #0.8、Appleはすべての項目に割引が変更された結果、割引を変更し、それが無理です。 #4.4 @classmethodクラスメソッド。ディスカウント商品は、それが合理的である、Appleの割引が変更されると一緒に、変更しました。 クラスの製品: __discount = 0.8 DEF __init__ (セルフ、名前,.価格): self.name = 名前 。自己__price。=価格#。価格は購入価格では、保護された私有財産の使用は、クラスの外に変更されたくありません。 @Property DEF 価格(セルフ): リターン。自己__price *製品。__discount #の価格=購入価格の割引* @classmethod #プライベート静的クラスメソッドは、オブジェクトのインスタンスのリンゴを頼らずに、プロパティを変更することがあります。 DEFディスカウント(CLS、NEW_DISCOUNT): #のオブジェクトはCLSなので、オブジェクトが自己であるため、この方法は、私有財産、私有財産の内側にすることはできません。 CLS。__discount = NEW_DISCOUNT アップル =製品(' アップル'、5 ) 印刷(apple.price) #4.0 Goods.discount(0.7 ) 印刷(apple._Goods__discount) #0.7 印刷(apple.price) #3.5の #5静的メソッド:オブジェクトとクラスとの@staticmethodは関係ありません、リンゴ()には、自己をブラケットません。 クラスの製品: @staticmethod #静的メソッド デフアップル(): 印刷(' りんご' ) G = 用品() g.apple() #アップル Goods.apple() #のアップル