human
I wrote the below code

    normalized_name = name.lower()
    def fget(self):
        try:
            return self._headers[normalized_name]
        except KeyError:
            return None
    if (transform is None):
        if six.PY2:
            def fset(self, value):
                self._headers[normalized_name] = str(value)
        else:
            def fset(self, value):
                self._headers[normalized_name] = value
    else:
        def fset(self, value):
            self._headers[normalized_name] = transform(value)
    def fdel(self):
        del self._headers[normalized_name]
    return property(fget, fset, fdel, doc)

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

def header_property(name, doc, transform=None):