Stavo giocando con le classi Python e sono arrivato al seguente esempio in cui due variabili che sembrano variabili di classe statiche hanno un comportamento diverso quando vengono modificate.Variabile di classe Python int vs array
Cosa sta succedendo qui? Il mio primo istinto è che qualcosa di complicato sta succedendo con i riferimenti.
class Foo:
a = []
n = 0
def bar(self):
self.a.append('foo')
self.n += 1
x = Foo()
print x.a, x.n ([] 0)
x.bar()
print x.a, x.n (['foo', 1])
y = Foo()
print y.a, y.n (['foo', 0])
y.bar()
print y.a, y.n (['foo', 'foo'], 1)
Ecco un caso simile da tenere a mente in python http://stackoverflow.com/questions/101268/hidden-features-of-python#113198 – qwwqwwq