Me pregunto si alguien puede encontrar una forma de comprobar si una función necesita devolver un valor significativo en Python. Es decir, para verificar si el valor de retorno se usará para cualquier cosa. Supongo que la respuesta es no, y es mejor reestructurar el flujo de mi programa. La función en cuestión extrae sus valores de retorno de un socket de red. Si el valor de retorno no se va a utilizar, no quiero desperdiciar los recursos que se obtienen del resultado.Comprueba si hay algo "esperando" el valor de retorno de una función
He intentado ya utilizar los trazados para descubrir la línea de llamada, pero eso no funcionó. Aquí está un ejemplo de lo que tenía en mente:
>>> def func():
... print should_return()
...
>>> func()
False
>>> ret = func()
True
La función "sabe" que se le ha asignado su valor de retorno.
Aquí está mi solución actual:
>>> def func(**kwargs):
... should_return = kwargs.pop('_wait', False)
... print should_return
...
>>> func()
False
>>> ret = func(_wait=True)
True
Todas las funciones en Python siempre regresan. Si no devuelve explícitamente, las funciones devuelven 'None'. – birryree
Las funciones de Python no, de hecho, siempre regresan. Si regresan, sin embargo, siempre devuelven un valor, que a menos que se especifique, es Ninguno. – Arafangion
Entiendo eso, pero la mayoría de las veces una función que devuelve 'None' es equivalente a no devolver nada. En este caso, necesito verificar si debe devolver algo que no sea 'None'. – Violet