defaultdict
takes any callable, so you can create a new function that doesn't take a parameter and returns an object instantiated with the parameter you want.
d = defaultdict(lambda: myobj(param1))
Another option is to use functools.partial, which creates a function with one (or more) of the parameters predefined:
import functools
d = defaultdict(functools.partial(myobj, param1))