Jetez un coup d'oeil à cet exemple simple. Je ne comprends pas pourquoi o1 imprime "Hello Alex" deux fois. Je pense qu'en raison de la valeur par défaut, self.a est toujours réinitialisé à la liste vide. Quelqu'un pourrait-il m'expliquer quelle est la logique ici? Merci beaucoup.Simple python oo numéro
class A(object):
def __init__(self, a=[]):
self.a = a
o = A()
o.a.append('Hello')
o.a.append('Alex')
print ' '.join(o.a)
# >> prints Hello Alex
o1 = A()
o1.a.append('Hello')
o1.a.append('Alex')
print ' '.join(o1.a)
# >> prints Hello Alex Hello Alex
cela est même mentionné dans la documentation: http://docs.python.org/tutorial/controlflow.html#default-argument-values -> "Avertissement important" - à quel point cela doit-il être évident? – hop
pas si évident et tout à fait contre-intuitif. –