human
I wrote the below code

    def _ResultHook(rpc):
        mapped_errors = [modules_service_pb.ModulesServiceError.INVALID_MODULE, modules_service_pb.ModulesServiceError.INVALID_INSTANCES]
        _CheckAsyncResult(rpc, mapped_errors, [])
        return rpc.response.hostname()
    request = modules_service_pb.GetHostnameRequest()
    if module:
        request.set_module(module)
    if version:
        request.set_version(version)
    if (instance or (instance == 0)):
        if (not isinstance(instance, (basestring, long, int))):
            raise TypeError("'instance'    arg    must    be    of    type    basestring,    long    or    int.")
        request.set_instance(str(instance))
    response = modules_service_pb.GetHostnameResponse()
    return _MakeAsyncCall('GetHostname', request, response, _ResultHook).get_result()

What's a good function header?

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

def get_hostname(module=None, version=None, instance=None):