pythonパッケージの最下位実装原理
1148 ワード
実際、pythonパッケージのプロパティの実装は「投機的」であり、クラスオブジェクトがプライベートメソッドとプロパティを直接呼び出すことができないのは、最下位の実装時にpythonがこっそり名前を変更したためです.
pythonは、最下位実装時に、それらの名前をこっそり「_クラス名__属性(メソッド)名」のフォーマットに変更しました.
要約:pythonクラスのすべてのプロパティとメソッドは、共通です.pythonの下位レベルでクラスプロパティまたはクラスメソッドの名前を変更して非表示にする場合は、名前の前に二重下線("")を追加するだけです.できます.
pythonは、最下位実装時に、それらの名前をこっそり「_クラス名__属性(メソッド)名」のフォーマットに変更しました.
class Person:
def setname(self, name):
if len(name) < 3:
raise ValueError(' 3!')
self.__name = name
def getname(self):
return self.__name
# name setter getter
name = property(getname, setname)
def setage(self, age):
if age < 100:
self.__age = age
else:
raise ValueError(' 100!')
def getage(self):
return self.__age
# age getter setter
age = property(getage, setage)
#
def __display(self):
print(self.__name, " ", self.__age, " 。")
xiaobai = Person()
xiaobai.name = "xiaobai"
xiaobai.age = 20
# display()
xiaobai._Person__display()
xiaobai 20 。
要約:pythonクラスのすべてのプロパティとメソッドは、共通です.pythonの下位レベルでクラスプロパティまたはクラスメソッドの名前を変更して非表示にする場合は、名前の前に二重下線("")を追加するだけです.できます.