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!" | 
