def __init__(self, ..., foo={}): self.foo = foo
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']
Run this in a Python interpreter:
The only thing that is really safe to put in the defaults are immutable values.