Ich komme aus der Java-Welt und lese Bruce Eckels ' Python 3-Muster, Rezepte und Redewendungen .
Beim Lesen über Klassen heißt es weiter, dass in Python keine Instanzvariablen deklariert werden müssen. Sie verwenden sie einfach im Konstruktor und boom, sie sind da.
Also zum Beispiel:
class Simple:
def __init__(self, s):
print("inside the simple constructor")
self.s = s
def show(self):
print(self.s)
def showMsg(self, msg):
print(msg + ':', self.show())
Wenn das stimmt, kann jedes Objekt der Klasse Simple
einfach den Wert der Variablen s
außerhalb der Klasse ändern .
Zum Beispiel:
if __name__ == "__main__":
x = Simple("constructor argument")
x.s = "test15" # this changes the value
x.show()
x.showMsg("A message")
In Java wurden uns öffentliche / private / geschützte Variablen beigebracht. Diese Schlüsselwörter sind sinnvoll, da Sie manchmal Variablen in einer Klasse möchten, auf die niemand außerhalb der Klasse Zugriff hat.
Warum ist das in Python nicht erforderlich?