See exactly what a function has returned

Jeff Shannon jeff at ccvcorp.com
Wed Sep 15 16:00:47 EDT 2004


Brad Tilley wrote:

>
> def print_whats_returned(function):
>     ## A function that shows what another function has returned
>     ## as well as the 'type' of the returned data.
>     print function
>     print type(function)
>
> def send_net_params_to_admin(ip_param, port_param):
>     ip = get_server_ip()
>     port = get_server_port()
>     return ip, port
>
> print_whats_returned(send_net_params_to_admin(get_server_ip(), 
> get_server_port()))


Note here that the argument to print_whats_returned() is *not* a 
function; it is the value returned from a function.  You're not passing 
the function send_net_params_to_admin();  you're passing whatever is 
returned from it.  It is effectively equivalent to the following:

    return_value = send_net_params_to_admin(get_server_ip(), 
get_server_port())
    print_whats_returned(return_value)

Thus, your function would be much more clear with different names, since 
it really has nothing to do with functions.

    def print_value_and_type(value):
        print value
        print type(value)

With these names, you wouldn't have had all of these people talking 
about dynamic typing and such, because it would've been clear that 
you're not attempting to find the intended return value of a theoretical 
future function call, but rather trying to inspect the actual value 
that's already been returned by a previously-executed function call. 

And no, there isn't really an easier way to do this.  :)

Jeff Shannon
Technician/Programmer
Credit International




More information about the Python-list mailing list