human
I wrote the below code

    h = u'__Property{0}'.format((hash(name) ^ hash(desc)))
    ADDONMANAGER.add_info_property(h, name, desc)
    def _get(self):
        if (not hasattr(self, h)):
            return default
        return getattr(self, h)
    def _set(self, value):
        if fire_event:
            self.__manager.fire(u'addon:property:change', value)
        return setattr(self, h, value)
    def _del(self):
        return delattr(self, h)
    return property(_get, _set, _del)

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

def addon_property(name, desc, default=None, fire_event=True):