def __call__(cls, *args, **kwargs):
    """Called when you call a class type constructor() """
    obj = type.__call__(cls, *args, **kwargs)
    if hasattr(obj, '__post_init__'):
        obj.__post_init__(*args, **kwargs)
    return obj
