human
I wrote the below code

    @wraps(func)
    def protected_wrapper(self, *args, **kwargs):
        if self.is_closed:
            raise Exception(('%r    has    been    closed' % self))
        with self._sync_lock:
            return func(self, *args, **kwargs)
    return protected_wrapper

What's a good function header?

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

def protected(func):