Todas las funciones devuelven un valor cuando se ejecutan.
Si a una sentencia de devolución le sigue una lista de expresiones, la lista de expresiones se evalúa y se devuelve el valor:
>>> def mayor_que_1(n):
... return n > 1
...
>>> print(mayor_que_1(1))
False
>>> print(mayor_que_1(2))
True
Si no hay lista de expresiones especificada, se devuelve None
:
>>> def no_lista_expresion():
... return # No se devuelve una lista de expresiones.
...
>>> print(no_lista_expresion())
None
Si se alcanza una sentencia de devolución durante la ejecución de una función, la llamada a la función actual se deja en ese punto:
>>> def devuelve_media():
... a = 1
... return a
... a = 2 # Esta sentencia nunca es alcanzada.
...
>>> print(devuelve_media())
1
Si no hay sentencia de devolución, la función devuelve None
cuando alcanza el final
>>> def no_devolver():
... pass # No hay sentencia retornar.
...
>>> print(no_devolver())
None
Una única función puede tener muchas sentencias devolver
. La ejecución de la función finaliza cuando una de las sentencias de devolución se alcanza:
>>> def multiples_devoluciones(n):
... if(n):
... return "First Return Statement"
... else:
... return "Second Return Statement"
...
>>> print(multiples_devoluciones(True))
First Return Statement
>>> print(multiples_devoluciones(False))
Second Return Statement
Una única función puede devolver varios tipos:
>>> def varios_tipos_de_devolucion(n):
... if(n==1):
... return "Hello World." # Devuelve un string
... elif(n==2):
... return 42 # Devuelve un valor
... else:
... return True # Devuelve un boolean
...
>>> print(varios_tipos_de_devolucion(1))
Hello World.
>>> print(varios_tipos_de_devolucion(2))
42
>>> print(varios_tipos_de_devolucion(3))
True
Incluso es posible que una única función devuelva múltiples valores con un simple Retornar:
>>> def devolver_dos_valores():
... a = 40
... b = 2
... return a,b
...
>>> print("First value = %d, Second value = %d" %(devolver_dos_valores()))
First value = 40, Second value = 2
Consulta la documentación de Python para más información
Traducido del artículo - Python Return Statements Explained: What They Are and Why You Use Them