J'ai la classe suivante qui a deux variables de classe, la "valeur" et le "gradient". J'attribue deux valeurs aux variables de classe, puis les imprimer. Mais alors j'attribue 20 à une variable de classe ("limite") qui n'existe pas. mais le compilateur est heureux et il semble que stocke la variable. Comment est-ce possible? Ma supposition était que si le nom de la variable était incorrect je devrais voir un message d'erreur. ne devrais-je pas?affecter une valeur à une variable de classe python
class wire:
def __init__(self,value,gradient):
self.value = value
self.gradient = gradient
XX = wire(10,0.05)
print XX.value , XX.gradient
XX.limit = 20
print XX.value , XX.gradient, XX.limit
Merci pour votre aide
Vous attribuez des attributs * instance *, pas des attributs de classe. Non, Python ne limite pas cela, c'est un comportement parfaitement normal. –
Est-ce illégal dans une autre langue OO ou suis-je en train de rêver? – spgt
Ne confondez pas les modèles de typage avec le paradigme de programmation. C++ et Java peuvent le rendre illégal, mais pas d'autres langues. Python est une [langue dynamique] (https://en.wikipedia.org/wiki/Dynamic_programming_language), et vous pensez à des langages statiques ici. –