パイソン(静的、これらの組み合わせ、継承されました)

静的プロパティ

クラスの振る舞い属性クラスへの行動修正クラスと@property、パッケージの役割があります

例。

# - * -コーディング:UTF-8 - * - 
クラスルーム:
    DEF __init __(自己、名前、所有者、幅、長さ、HEIGH):
        self.name名= 
        self.Owner =所有者
        self.Width =幅
        self.Length =長
        self.Heigh = HEIGH 
    クラスのクラスプロパティに#挙動、封止効果
    @Property 
    DEFのcal_area(自己):
        戻りself.Length * self.Width 

ROOM1 =ルーム( '102'、 'アレックス'、10 、10,3) 
ないコール添加前@property #room1.cal_area S =() プリント(S) ROOM2 =ルーム( '103'、 'アレックス'、10,5,3) #S2 = room2.cal_area () プリント(S2)
呼び出し@Property添加後 S1 =をroom1.cal_areaの プリント(S1) S2 = room2.cal_areaの 印刷(S2)

メソッドは、クラス(クラスメソッドが存在しない場合に、クラスのインスタンスのケースを呼び出します)

@classmethod

# - * -コーディング:UTF-8 - * - 
クラスルーム:
    タグ= 1 
    デフ__init __(自己、名前、所有者、幅、長さ、heigh):
        self.Name =名
        self.Owner =所有者
        self.Width =幅
        セルフ.LENGTH =長さ
        self.Heigh = heigh 

    デフcal_area(自己):
        戻りself.Length * self.Width 

    @classmethod 
    デフ情報(CLS)は:
        プリント( '我是类方法')
        
Room.info()

staticメソッド

@staticmethod

静的メソッド名のみホームベースの管理、クラス変数とインスタンス変数を使用することはできません基づいており、ツールキット

# - * -コーディング:UTF-8 - * - 
クラスルーム:
    タグ= 1 
    デフ__init __(自己、名前、所有者、幅、長さ、heigh):
        self.Name =名
        self.Owner =所有者
        self.Width =幅
        セルフ.LENGTH =長さ
        self.Heigh = heigh 

    デフcal_area(自己):
        戻りself.Length * self.Width 

    @classmethod 
    デフ情報(CLS):
        プリントは( '我是类方法')

    @staticmethod 
    (a、b)は、DEFライブ:
        印刷( '%sの和%S是住户' %(B)) 调用类
Room.live( 'アレックス'、 'ボブ') 实例调用
ROOM1 =ルーム( '102'、 'アレックス'、10、 10,3)
room1.live( 'アレックス'、 'ボブ')

概要:@propertyとだけインスタンスのバインディング(静的プロパティの両方のインスタンスのプロパティにアクセスすることができ、彼らはクラス属性にアクセスすることができます)、クラスメソッド@のみstaticmethodクラスとインスタンス@、(クラスメソッドのみクラス属性にアクセスすることができます)クラスをバインドするには、することができ(クラスクラスは、どちらの方法でも、インスタンスの属性属性)

おすすめ

転載: www.cnblogs.com/2018-1025/p/12019670.html