PYTHONクラス定義、属性、初期化

10323 ワード

文書ディレクトリ
  • PYTHONクラス定義、属性、初期化
  • クラス定義
  • クラスのプライベート属性
  • クラスメソッド
  • クラスの初期化とプロファイル
  • 初期化
  • 析構
  • PYTHONクラス定義、属性、初期化
    コードの作成が便利で簡潔であるために、クラスの定義を導入した.一般的に、class文を使用して新しいクラスを作成します.classの後にクラスの名前(通常は頭文字が大文字)となり、次のようにコロンで終わります.
    クラスで使用するメソッドを定義できます.クラスのメソッドは通常の関数と特別な違いしかありません.通常、selfという名前の追加の最初のパラメータ名が必要です.
    クラス定義
    キーワードclass
    #    class   :
    class My_class:
        pass
    #  
    cl =  My_class()
    #cl  My_class      
    

    クラス名は、頭文字が大文字でなければなりません.
    クラスは、独立した変数(属性、メソッド)をアーカイブする空間です.
    演算子ポイント「.」を使用してクラスのプロパティまたはメソッドを呼び出す
    #    My_class  
    class My_class:
        var = "id"    #var      
        
        def test(self):   #test        ,  self      
            print('   ') 
            
    #              
    cl =  My_class()
    print(cl.var)    #     
    cl.test()        #     
    

    クラスとインスタンスの関係:
    類:物事の抽象であり、本当に存在するものではない.「人間」「動物」「家具」など、このような物事の共通性を描いています.
    例:
    ある物事の具体的な個体は、その物事の具体的な表現であり、それは実在している.例えば、「張三」は具体的な「人」であり、「李四」も具体的な「人」である.
    張三と李四は人という類の実例に相当する.
    インスタンス化オブジェクトはインスタンス属性にもクラス属性にもアクセスできますが、クラスがインスタンス化されていない場合はクラス属性にのみアクセスできます.
    クラスのプライベート属性
    class My_class:
        var = "id"    #var      
        _name="  "   #  "_"   ,  
        __age=18      #  "_"   ,  
    

    「」の下線は、プライベート属性であり、クラス外で呼び出すことができ、俗っぽいプライベートを約束します.
    2つの「」の下線で、プライベート属性を強制し、クラス外では呼び出せません.
    クラスメソッド
    「メソッド」はクラスにカプセル化された特殊な関数です
    #    My_class  
    class My_class:   
        def test(self):   #test        ,  self      
            print('   ') 
            
    #           
    cl = My_class()
    cl.test()
    

    関数testにパラメータselfを追加するとクラスのインスタンスメソッドが表示され、「インスタンス」の動作が表示されます.selfを追加しないと、インスタンス呼び出しクラスメソッドがエラーになります.
    クラスのインスタンスメソッドを呼び出すには、関数のパラメータと同様に、独自のインスタンスselfが先に渡されます.
    selfはインスタンス自体に相当し、self付きメソッドがインスタンスメソッドとなり、インスタンスが呼び出され、selfを装着しないメソッドはクラス自体のみ呼び出されます.
    クラスの初期化とプロファイル
    Pythonには二重下線で始まる固定方法が多く、二重下線で終わる固定方法があります.彼らは特定のタイミングで実行をトリガーされます.
    初期化
    initはその1つであり、インスタンス化後に自動的に呼び出されます.をクリックして、インスタンスの初期化を完了します.
    class My_class: 
        def __init__(self,name):   #     
            self.name = name     #       
            
        def test(self):   #test        ,  self      
            print('     :{}'.format(self.name)) #      
            
    #   ,  init       name,                
    #             __init__  。
    cl=My_class('  ')
    cl.teat()  #  test  
    

    Initメソッドパラメータの伝達プロセス
  • インスタンス化:クラスを生成するインスタンス
  • Pythonオートコール:インスタンス.init(パラメータ)
  • 変換:クラス.init(インスタンス、パラメータ)
  • #   
    cl=My_class('  ') #      
    #   
    cl.__init__('  ')
    #   
    My_class.__init__('  ')
    

    ぶんせき
    クラスはインスタンス化されると、インスタンスが破棄されると、同様に破棄メソッドを呼び出してインスタンスを破棄する初期化操作を行うことができます.
    __del__delを使用してオブジェクトを削除すると、独自の構造関数が呼び出されます.開発者にヒントを与え、オブジェクトが破棄され、デバッグが容易になります.必要な整理作業を書きます.
    class My_class: 
        def __init__(self,name): #     
            self.name = name     #       
            
        def test(self):   #test        ,  self      
            print('     :{}'.format(self.name)) #      
            
        def __del__(self):       #    (    )
            print('     :{}'.format(self.name)) 
    
    #     del    
    cl=My_class('  ')
    cl.teat()  #  test  
    
    del cl #      
    #              
    cl.teat() 
    

    変数がオブジェクトを指していない場合、Pythonはこのオブジェクトを自動的に破棄し、メモリ領域を回収します.
    delキーワードで、変数の指向を削除できます.