Pythonオブジェクト向けの3つの特徴-パッケージ
8102 ワード
オブジェクト向けの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
パッケージのメリット
パッケージは生活中のデータのプライバシー性を体現し、操作過程で対象中のデータに対して安全性の要求がある前提の下で、パッケージを通じてデータの保護を実現した.
データセキュリティの要件があるプロジェクトでは、パッケージはデータ保護を実現する最も直接的で最も簡単な操作構文です.
カプセル化された適用シーン