If you are setting a bunch of defaults, it might make more sense to have a default dict which is then updated with the passed in dict so that if users want to change only one property from the default they don't have to explicitly figure out what the values they don't want to change are.