code: def freefn(self, key, free_fn):
          
          return c_void_p(lib.zhashx_freefn(self._as_parameter_, key, free_fn))
docs: Set a free function for the specified hash table item. When the item is
  destroyed, the free function, if any, is called on that item.
  Use this when hash items are dynamically allocated, to ensure that
  you don't have memory leaks. You can pass 'free' or NULL as a free_fn.
  Returns the item, or NULL if there is no such item.