Je viens du monde Java et je lis les modèles, recettes et idiomes Python 3 de Bruce Eckels .
En lisant sur les classes, il ajoute qu'en Python, il n'est pas nécessaire de déclarer des variables d'instance. Vous les utilisez simplement dans le constructeur, et boom, ils sont là.
Ainsi, par exemple:
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())
Si c'est vrai, tout objet de classe Simple
peut simplement changer la valeur de la variable en s
dehors de la classe.
Par exemple:
if __name__ == "__main__":
x = Simple("constructor argument")
x.s = "test15" # this changes the value
x.show()
x.showMsg("A message")
En Java, nous avons appris les variables publiques / privées / protégées. Ces mots-clés ont du sens parce que parfois vous voulez des variables dans une classe à laquelle personne en dehors de la classe n'a accès.
Pourquoi cela n'est-il pas requis en Python?