def METHOD_NAME(func):
    @wraps(func)
    def wrapped(*args, **kwargs):
        if not isinstance(args[0], ClassInstanceType):
            return
        return func(*args, **kwargs)
    if target is not complex:
        # complex ctor needs special treatment as it uses kwargs
        params = list(inspect.signature(wrapped).parameters)
        assert params == _get_args(len(params))
    return overload(target)(wrapped)