|
|
|
|
|
by pyre
5315 days ago
|
|
def __init__(self, ..., foo={}):
self.foo = foo
In this case, 'foo={}' is evaluated once, and returns a pointer to a dict(). After that, foo is always pointing to the same dict, not to a newly created empty dict.Run this in a Python interpreter: class PhoneBook(object):
def __init__(self, names={}):
self.names = names
phonebook1 = PhoneBook()
phonebook2 = PhoneBook()
phonebook1.names['Bob'] = '+1 555 5555'
print phonebook2.names['Bob']
The only thing that is really safe to put in the defaults are immutable values. |
|