高度な2日目パイソン

@propertyデコレータ

#のデコレータに注意を払う必要があるとき:
  #1デコレータ名を、関数名は一貫している必要があります。
  プロパティのセッターを書き、宣言する必要がある#2、順序を逆にすることはできません
  あなたは少し変数をしたいが、アクセスすることはできません場合は#3を変更された、あなたは@Propertyアクセスするためにデバイスを使用することができ
  ますが、修飾子を構築する、またはアクセス制御を削除することができアクセサ変数を変更したい場合は#4を。

クラスPerson(オブジェクト):
    デフ__init __(自己、名前、年齢):
        self._name =名前
        self._age =年齢
    #アクセサ-のgetterメソッド
    @Property
    DEF名(自己):
        戻りself._name
    #アクセサ-のgetterメソッド
    @Property
    DEF年齢(自己):
        戻りself._age
    #修飾子-セッターメソッド
    の@ age.setter
    DEF年齢(セルフ、年齢):
        self._age =年齢
    DEF(自己を)再生:
        IF self._age <= 16:
            印刷( '%Sはチェスの飛行を果たしている。' %のself._name)
        他:
            印刷( '%S doudizhu再生されている' %のself._name)
 
 
Pythonのクラスの2は動的であり、
Numクラス(オブジェクト):
    デフ__init __(自己):
        self.a = 1000
   
    DEF(自己):
        プリント(self.b)

NUM = NUM()
num.b = 1000000
#プリント(NUM)
印刷(num.b)
NUM。()
 
 
__solots__マジック
私たちは、カスタムオブジェクトを定義する必要がある場合にのみ、クラスで定義されたプロパティの特定の種類を、バインドすることができますすることができます_ _ スロットは、_ _ 変数が定義されています
クラスPerson(オブジェクト):
    #人物オブジェクトのみ_name、_ageと_gender特性バインド定義さ
    __slots__ =( '_name'、 ' _age'、 '_gender')を
    デフ__init __(自己、名前、年齢):
        self._name =名前
        self._age =年齢
    @propertyの
    DEF名(自己):
        戻りself._name
    @propertyの
    デフ年齢(自己):
        戻りself._age
    @ age.setterの
    デフ年齢(自己、年齢):
        self._age =年齢
    DEF(自己を)再生:
        IF self._age <= 16:
            印刷( '%Sはチェスの飛行を果たしている。' %のself._name)
        他:
            印刷( '%S doudizhu再生されている' %のself._name)
 
 
 
 
 

おすすめ

転載: www.cnblogs.com/lgf333/p/11318916.html