Pythonオブジェクト向けの3つの特徴-パッケージ

8102 ワード

  • オブジェクト向けの3つの特徴
  • パッケージ
  • パッケージ
  • とは
  • パッケージの実装方法
  • はパッケージ化されておらず、
  • を直接使用する.
  • 約束パッケージ、プロジェクト規範
  • 構文規則、強制パッケージ
  • 完全なパッケージコード
  • パッケージのメリット
  • パッケージの適用シーン

  • オブジェクト向けの3つの特徴
    オブジェクト向けには、次の3つの特徴があります.
  • パッケージ:オブジェクトのデータのプライバシーを復元し、プライベート化操作
  • 継承:既存のリソースを繰り返し使用して新しい機能の拡張を完了し、多重化操作
  • マルチステート:異なるシーンで、各オブジェクトはキャラクタの異なる状態を体現し、多様性操作
  • パッヶージ
    パッケージとは
    パッケージは、オブジェクト向けの最初の特徴であり、データの私有化操作を体現し、オブジェクトの機密データをオブジェクトの内部に隠し、外部に直接アクセスさせない.外部から機密データにアクセスする方法を提供し、方法にアクセス制限条件を追加し、外部から方法で自分のプライバシーデータにアクセスさせる.
  • すべての属性のプライベート化
  • すべての属性はアクセス方法
  • を提供する.
  • [対応方法に制限条件を追加]
  • パッケージの実装方法
    パッケージなし、そのまま使用
    コードの開発効率は最高ですが、データの保護性は最悪です!開発したソフトウェアの中で、データの安全性に対する要求が低い場合は、このような方法で開発することができます.
    class Person:
        def __init__(self, name, age):
            """      """
            self.name = name
            self.age = age
    
    damu = Person("  ")
    print(damu.name)
    

    プロジェクト仕様
    コード開発の過程で、1つの下線カードの頭の属性あるいは方法を約束して、現在のタイプの中で保護された属性あるいは方法で、クラスの外部は直接実行を呼び出さないでください.(従来のプロジェクトではよく見かける)
    class Person:
        def __init__(self, name, age):
            """      """
            self._name = name
            self._age = age
    
    damu = Person("  ")
    print(damu._name)
    #     ,            ,     !
    # IDE     Access to a protected member _name of a class
    

    構文規則、強制パッケージ
    データの安全性に高い要求がある場合、文法規則によって属性または方法の私有化操作を行い、文法上は2つの下線の先頭の属性と方法を使用し、文法規則上の私有化操作であり、理論の外部は直接実行を呼び出すことができない.
    class Person:
        def __init__(self, name, age):
            """      """
            self.__name = name
            self.__age = age
    
    damu = Person("  ")
    print(damu.__name)
    #     
    # AttributeError: 'Person' object has no attribute '__name'
    

    強制的にカプセル化され、解釈器はメモリの中で2つの下線の先頭の属性または方法を変換し、_ __ を使用して ._ __ を使用してもプライベート属性に直接アクセスできるが、このようなアクセス方式は推奨されないと解釈した.
    完全なパッケージコード
    class Person:
        def __init__(self, name):
            """       """
            self.__name = name
    
        def get_name(self):
            """         """
            return self.__name
    
        def set_name(self, name):
            """         """
            self.__name = name
    
    damu = Person("damu")
    
    print(damu.__name)
    # AttributeError: 'Person' object has no attribute '__name'
    
    print(damu.get_name())
    # damu
    
    damu.set_name("damu2")
    print(damu.get_name())
    # damu2
    

    パッケージのメリット
    パッケージは生活中のデータのプライバシー性を体現し、操作過程で対象中のデータに対して安全性の要求がある前提の下で、パッケージを通じてデータの保護を実現した.
    データセキュリティの要件があるプロジェクトでは、パッケージはデータ保護を実現する最も直接的で最も簡単な操作構文です.
    カプセル化された適用シーン
  • 単純なプロジェクトで、データにセキュリティ要件がないパッケージを使用しない(パッケージする必要はない-問題もない-開発効率が低すぎる-過剰設計)
  • .
  • 従来のプロジェクトで、会社で以前開発した残存プロジェクトは約束パッケージを使用して[プロジェクトグループ規範に従い、コード中の符号化規範(優先)]
  • を観察する.
  • 新プロジェクト、会社で開発した新プロジェクトはデータの安全性に対して一定の要求があり、文法上のパッケージを使用し、データ保護の目的
  • を実現する.
  • 企業プロジェクトは、下位タイプのパッケージ操作の実際のプロジェクトを直接作成することはめったにありません.通常、成熟した安定したフレームワークを使用しています.宣言タイプではパッケージのコードを記述する必要はありません.フレームワークでは、クラスの属性をカスタマイズしたパッケージ操作
  • が行われています.