Resolve func in __init__ rather than __call__

This is more efficient if the function is called multiple times.