Pochodzę ze świata Java i czytam Bruce'a Eckelsa Wzory, przepisy i idiomy języku Python 3 .
Podczas czytania o klasach mówi się dalej, że w Pythonie nie ma potrzeby deklarowania zmiennych instancji. Po prostu używasz ich w konstruktorze i bum, są tam.
Na przykład:
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())
Jeśli to prawda, to każdy obiekt klasy Simple
może po prostu zmienić wartość zmiennejs
poza klasą.
Na przykład:
if __name__ == "__main__":
x = Simple("constructor argument")
x.s = "test15" # this changes the value
x.show()
x.showMsg("A message")
W Javie uczono nas o zmiennych publicznych / prywatnych / chronionych. Te słowa kluczowe mają sens, ponieważ czasami chcesz zmiennych w klasie, do których nikt poza klasą nie ma dostępu.
Dlaczego nie jest to wymagane w Pythonie?