Pythonのオブジェクト指向|静的メソッドstaticmethod

 

この方法は、静的クラス、インスタンスなしの関数です。静的メソッドは、主に、コード・ロジックを格納するために使用される、論理的クラスに属するが、クラス自体、及び静的メソッドでない関係、すなわち、プロパティとメソッドは、クラスの動作を伴わないれます。静的メソッドは、独立して、簡単な関数であると理解することができ、それが唯一の名前空間が使いやすいし、維持するために、クラスを開催しています。

 

例えば、私は、買収の現在の時刻としての機能を有する操作の時間についてクラスを定義したいです。静的メソッドを使用して、しかし、メソッド本体(未使用)、またはクラスインスタンスの属性(またはメソッド)を使用しませんでした。より多くの名前空間のクラスで、文字列は、必ずしも、オブジェクトをインスタンス化する静的メソッドのために、この時間を必要としない、現在の時刻を取得します。実際に、私たちはクラスの外でこれらの事を行うには同様の機能を書くことができますが、困難な将来のコードの保守につながる可能性の論理的な関係を混乱させるだろうそうします。

インポート時間

クラスTimeTest(オブジェクト):
     デフ __init__ (自己、時間、分、秒):
        self.hour = 時間
        self.minute = 
        self.second = 第二

    各种方法省略

    @staticmethod   静态方法
    DEF SHOWTIME():
         戻り time.strftime(" %H:%M:%のS " 、time.localtime())


プリント(TimeTest.showTime())

T = TimeTest(2、10、10 、印刷(t.showTime())

'' 「 
出力を実行します。
午後9時05分43秒 
午後9時05分43秒
「」」

 

プロセス指向の半分と半分は、オブジェクト指向で、以下のコードを参照してください。完全なオブジェクト指向のプログラミングでは、プロセス指向のコードが許可されていません。完全オブジェクト指向プログラミング。最初のログインの例。ログイン方法を実行するために必要な場合に、特定のターゲットがありません、これは無理があります。あなたは()ログインに必要な静的メソッドになります。

デフログイン():パス
    #のユーザ名
    #のパスワード
    身份-实例化

クラスの学生:
     デフ __init__(自己、名):渡す
    デフログイン(自己):パス 

 

我々は、それがインスタンス化する必要はありません、定義された関数としてクラスへの関数staticmethodの静的メソッドであるのpythonを構築しました。だから、すべてでさえself引数。

クラスの学生:
     DEF  __init__(セルフ、名):パスは

    @staticmethod 
    DEFログインを() :   ログインクラスは静的メソッドなしデフォルトパラメータの静的メソッドである、それは通常の関数として使用することができます。 
        ユーザー= INPUT(" ユーザー:' IFユーザー== ' トニー' 印刷' 成功' それ以外印刷' faild " 

Student.login()

 

要約:

  • この方法は、従来の手段によって、オブジェクトのプロパティを使用する場合、

  • 静的プロパティクラスを使用する方法は、クラスメソッド(クラスメソッド)である場合、

  • オブジェクトのプロパティのメソッドは静的でも、クラス属性でもないようにすると、方法が使用staticmethodの静的することができ;

おすすめ

転載: www.cnblogs.com/Summer-skr--blog/p/11801442.html