Mercurial > hg > config
annotate python/example/mutable_defaults.py @ 929:7c4be71a560b default tip
remove old aliases
| author | Jeff Hammel <k0scist@gmail.com> | 
|---|---|
| date | Mon, 20 Oct 2025 15:22:19 -0700 | 
| parents | d6f659169b49 | 
| children | 
| rev | line source | 
|---|---|
| 91 
70544c7406e2
add illustration program for mutable arguments, since this comes up a bunch
 Jeff Hammel <jhammel@mozilla.com> parents: diff
changeset | 1 #!/usr/bin/env python | 
| 
70544c7406e2
add illustration program for mutable arguments, since this comes up a bunch
 Jeff Hammel <jhammel@mozilla.com> parents: diff
changeset | 2 | 
| 184 | 3 # see also: http://www.daniweb.com/software-development/python/threads/66697 | 
| 4 | |
| 91 
70544c7406e2
add illustration program for mutable arguments, since this comes up a bunch
 Jeff Hammel <jhammel@mozilla.com> parents: diff
changeset | 5 class Foo(object): | 
| 
70544c7406e2
add illustration program for mutable arguments, since this comes up a bunch
 Jeff Hammel <jhammel@mozilla.com> parents: diff
changeset | 6 def __init__(self, mutable=['default']): | 
| 
70544c7406e2
add illustration program for mutable arguments, since this comes up a bunch
 Jeff Hammel <jhammel@mozilla.com> parents: diff
changeset | 7 self.foo = mutable | 
| 
70544c7406e2
add illustration program for mutable arguments, since this comes up a bunch
 Jeff Hammel <jhammel@mozilla.com> parents: diff
changeset | 8 self.foo.append(1) | 
| 
70544c7406e2
add illustration program for mutable arguments, since this comes up a bunch
 Jeff Hammel <jhammel@mozilla.com> parents: diff
changeset | 9 | 
| 
70544c7406e2
add illustration program for mutable arguments, since this comes up a bunch
 Jeff Hammel <jhammel@mozilla.com> parents: diff
changeset | 10 if __name__ == '__main__': | 
| 
70544c7406e2
add illustration program for mutable arguments, since this comes up a bunch
 Jeff Hammel <jhammel@mozilla.com> parents: diff
changeset | 11 bar = Foo() | 
| 
70544c7406e2
add illustration program for mutable arguments, since this comes up a bunch
 Jeff Hammel <jhammel@mozilla.com> parents: diff
changeset | 12 print len(bar.foo) | 
| 
70544c7406e2
add illustration program for mutable arguments, since this comes up a bunch
 Jeff Hammel <jhammel@mozilla.com> parents: diff
changeset | 13 fleem = Foo() | 
| 
70544c7406e2
add illustration program for mutable arguments, since this comes up a bunch
 Jeff Hammel <jhammel@mozilla.com> parents: diff
changeset | 14 print len(fleem.foo) | 
| 
70544c7406e2
add illustration program for mutable arguments, since this comes up a bunch
 Jeff Hammel <jhammel@mozilla.com> parents: diff
changeset | 15 assert len(fleem.foo) == 2, "Don't use default mutable arguments!" | 
