Python 3ベース:08_03_オブジェクト向けプログラミング(OOP):プライベート属性メソッドとパブリック属性メソッド

6655 ワード

0.はじめに
このブログでは、クラスの公有属性と私有属性、アクセス方法について説明します.これは科学普及の章にすぎません.正常な開発環境ではすべて公有属性と方法が使われています.ここでは、私有属性と方法を科学普及させるだけで、正常な開発で使用することをお勧めしません.
1.共有メソッドとプライベートメソッドの概念と作成とアクセス
1.1共有属性と方法
通常、クラスが作成したオブジェクトに直接アクセスできるプロパティとメソッド.
1.2プライベート属性と方法
クラスで作成されたオブジェクトに直接アクセスできないプロパティとメソッド.Pythonのプライベート属性とメソッドは擬似プライベートであり,クラスのプライベート属性とメソッドに一定のメソッドでアクセスできることを意味する.
1.3共有属性、メソッド、プライベート属性、メソッドを区別します.
まず、例を見てみましょう.1.女子クラスを定義します.2.共有属性名とプライベート属性年齢を作成します.3.共有メソッドとプライベートメソッドを作成します.4.クラスオブジェクトを作成して、これらのプロパティとメソッドにアクセスします.コードは次のとおりです.
class Girl:
    def __init__(self):
        #     
        self.name = '  '
        #     
        self.__age = 18

    #     
    def test(self):
        print("  :   [%s]" % self.name)

    #     
    def __test(self):
        print("  [{}    :{}]".format(self.name, self.__age))


#      
xm = Girl()
#       
print(xm.name)
#       
# print(xm.__age)
print(xm._Girl__age)
#       
xm.test()
#       
# xm.__text()
xm._Girl__test()


運行結果:小美18公有:名前は[小美]私有[小美の年齢は18歳]
説明:プライベート属性とメソッドのネーミングは、名前の前に2つの下線()を付けます.プライベートを表し、プライベート属性とメソッドはクラスの外部で直接アクセスできません.プログラム内の注釈のコードのように、クラスにアクセスするプライベート属性とメソッドは、上記のコードのように処理できます(アクセスは下線()+クラス名+プライベート属性名またはプライベートメソッド名).
クラスの外部に直接アクセスすることはできませんが、クラスの内部に直接アクセスできる(公開アクセスによるプライベート)処理は次のコードで行います.
class Girl:
    def __init__(self):
        self.name = '  '
        self.__age = 18
        self.__weight = 45

    def __test(self):
        print('{}    {}'.format(self.name, self.__age), end='')

    def test(self):
        self.__test()
        print(',   %d  !' % self.__weight)


xm = Girl()
xm.test()


運行結果:美ちゃんの年齢は18、体重は45キロ!
説明:クラスの内部では、プライベート属性に直接アクセスし、プライベートメソッドを呼び出すことができるので、クラスの内部でプライベート属性にアクセスし、プライベートメソッドを呼び出し、外部でこのパブリックメソッドを使用してクラスのプライベート属性とメソッドにアクセスできます.
まとめ
ここでは私有属性、方法について科学普及を行うだけで、具体的にどのような面で使用するかは自分で発掘してくださいが、通常の開発では私有方法と属性の使用はお勧めしません.
時間:2019年5月4日16:45:29