Pythonの静的メソッドとクラスメソッド、デコレータ

まず、静的メソッドとクラスメソッド

1.静的コール:@staticmethod

クラスA(オブジェクト):
    @staticmethod 
    :()DEF 
        プリント( 'A')
AA()

  あなたはクラスの非クラスのメンバーの存在が必要な場合は、静的メソッド呼び出しを使用することができます

2.例

面積を計算@staticmethodと、:ある場合、入力は、正方形の4辺であるか否かを判断します

クラスZFX(オブジェクト):
    デフ__init __(自己、A、B、C、D):
        self.a = A 
        self.b = B 
        self.c = C 
        self.d = D 
    @staticmethod 
    DEF IS_VALID(A、B、C 、D):
        [B、C、D] iの中のために:
            場合I =:!
                Falseを返す
        他:
            Trueを返し
    
    DEFエリア(自己):
        RES場合==真:
            area_ = self.a * self.bの
            リターンarea_ 

FX = ZFX(5,5,5,5)
RES = fx.is_valid(5,5,5,5)
fx.area()
解像度の場合==真:
    プリント(fx.area())

  

3.クラスのメソッド

(1)初期値:

DEF(BL = 'こんにちは'):
    プリント(BL)
A()

  出力は次のとおりです。こんにちは

(2)cocaltime

#ライブラリを呼び出すのlocaltime:
インポート時間時間から、localtimeの、SLEEPの
印刷(時間())

  タイムスタンプ、1970年1月1日から開始する秒00.00.00数は現在、経験しました

(3)@classmethod

@classmethod:クラス自体(CLS)は属性を取得し、変更することができます。
クラスメソッドの修飾子は、対応する機能なし自己パラメータをインスタンス化する必要はありませんが、最初のパラメータは、それ自体がクラスを呼び出すことができるCLSに必要なパラメータであり、属性クラス、クラスメソッド、およびその他のオブジェクトインスタンス化

 

クラス4クラスとの関係(継承)

(1)最初のステップは、クラス継承クラスの名前を書くことです

.__のinit __(自己):(2)クラス名(クラス名)__のinit __(自己)提案しました

(3)例:サブクラスで、親と二つの数値計算sum_を作成するために、親クラスを作成し、このサブクラスのsum_を印刷

クラスFU(オブジェクト):
    デフ__init __(自己):
        self.a = 10 
        self.b = 20 
    DEF sum_(自己):
        和= self.a + self.b 
        戻り和
クラスZI(FU):
    デフ__init __(自己) :
        FU .__のinit __(自己)
    デフPRINT(自己):
        RES = self.sum_()
        プリント(RES)
B = ZI()
b.PRINT()

  出力:30

リストとリストの生産単位式

#リストの式
A = [X Xの範囲(100)] 
    プリント(A) リストジェネレータ
A =(範囲でXのX(100))
    印刷(A)

  長所と短所ビルダリストビルダのタイプをリストします。

(1)式:

長所:高速な計算、メモリーにロードされたすべての時間を持っているように、データ量が10000-2000-場合のために大きすぎない
デメリット:メモリについて

(2)発電機:

利点:メモリの節約
欠点を:生成するように遅い計算

第二に、デコレータ

 

1.デコレータの使用法

徒歩デコレータ機能を行きます

実施例2デコレータ:三つの機能、二つのパラメータ、デコレータ及びこれらの2つのパラメータの処理、これらの2つのパラメータの印刷機能のそれぞれを作成します

ジョーカーDEF(FUNC):

DEFワープ(N1、N2、N3):

NUM = N1 + N2 

リターンFUNC(0、NUM、N3)

の戻りワープ



*デコレーター最初の2桁を加算し、第一の機能そのもの三つのパラメータとを乗じた* 

@Joker 

DEF SUM(NUM1、NUM2、NUM3):

印刷(NUM1、NUM2、NUM3)

印刷(NUM2 *のNUM3)



SUM(10,2,3)

  

おすすめ

転載: www.cnblogs.com/baoleiiwa/p/11322718.html