class Man1():
def __init__(self, name):
self.name = name
Mit dieser Definition kann sowohl der Name der Instanzvariablen referenziert als auch neu geschrieben werden.
#Initialisieren
Paul = Man("Paul")
#Kann referenziert werden
print(Paul.name)
#Wiederbeschreibbar
Paul.name = Mac
Aber eine Instanzvariable
In manchen Fällen. in diesem Fall,
#Stellen Sie die Instrumentenvariable voran__Definiert in(Dies__Der Name ist entstellt und dieser Name kann nicht referenziert werden)
class Man():
def __init__(self, name):
self.__name = name
#Dieser Funktionsname sollte sich nicht mit einem vorhandenen Instanzvariablennamen überschneiden
@property
def name(self):
return self.__name
#Vor dem Setter muss der gleichnamige Getter definiert werden
#Ohne diesen Setter wäre die Eigenschaft name schreibgeschützt
@name.setter
def name(self, name):
self.__name = name
Durch
#Initialisieren
Paul = Man("Paul")
#Referenz
# Paul.name()ist nicht
print(Paul.name)
#Umschreiben
# Paul.name("Mac")ist nicht
Paul.name = "Mac"
#Kein direkter Zugang zum ursprünglichen Eigentum(Error)
Paul.__name
Paul.__name = "Mac"
Es ist jedoch möglich, auf die Instanzvariable __name
mit Paul._Man__name
zu verweisen und diese neu zu schreiben (also mock
).