human
I wrote the below code

    def check_accepts(f):
        assert (len(types) == f.__code__.co_argcount)
        def new_f(*args, **kwds):
            for (a, t) in zip(args, types):
                assert isinstance(a, t), ('arg    %r    does    not    match    %s' % (a, t))
            return f(*args, **kwds)
        new_f.__name__ = f.__name__
        return new_f
    return check_accepts

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

def accepts(*types):