human
I wrote the below code

    def wrapper(self, *args, **kwargs):
        magic = inspect.getargspec(method)
        arg_names = magic.args[1:]
        default = dict(((x, y) for (x, y) in zip(magic.args[(- len(magic.defaults)):], magic.defaults)))
        method_args = {}
        for (i, arg) in enumerate(args):
            method_args[arg_names[i]] = arg
        method_args.update(kwargs)
        default.update(method_args)
        for (key, value) in six.iteritems(default):
            setattr(self, key, value)
        rst = method(self, *args, **kwargs)
        self._init_bound()
        return rst
    return wrapper

What's a good function header?
assistant
#Here's a good function header.

def plot_init(method):