elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Para que sirve esto? (Python)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Para que sirve esto? (Python)  (Leído 2,767 veces)
Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Para que sirve esto? (Python)
« en: 25 Mayo 2021, 17:27 pm »

Hola, e visto que en muchos foros al momento de hacerse una función (o método en class), se usa "-> None", alguien me puede explicar para que sirve esto?






Gracias =)


En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Para que sirve esto? (Python)
« Respuesta #1 en: 25 Mayo 2021, 17:31 pm »

se usa para indicar el tipo de retorno de la función, sin embargo es meramente documental en el sentido que no cambia nada, si lo pones o lo quitas es opcional y el comportamiento del programa no variará (algunos validadores de código podrían detectar si el resultado cumple las condiciones exitosamente)


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
DtxdF

Desconectado Desconectado

Mensajes: 53



Ver Perfil
Re: Para que sirve esto? (Python)
« Respuesta #2 en: 25 Mayo 2021, 18:32 pm »

Hola @Panic0

Se llaman sugerencias o concretamente hinting. Como menciona engel lex, son simplemente para indicar lo que debería retornar, y mejoran significativamente la calidad del código.

Pero Python los ignora, ya que si tenemos lo siguiente:

Código
  1. #!/usr/local/bin/python3.7
  2.  
  3. def foo() -> int:
  4.    return "1"
  5.  
  6. if __name__ == "__main__":
  7.    val = foo()
  8.    print(type(val), val)

Se retornaría sin ningún inconveniente, pero lo ideal sería especificar el tipo de dato que en verdad vamos a generar (el cual sería str). No obstante, podría haber algún tipo de condición dentro de la función que permitiera no retornar nada (None) cuando no se cumpla o podría retornar cuando pase todo lo contrario, entonces el retorno sería opcional. Ahí entraría la librería typing para realizar sugerencias más potentes.

Código
  1. #!/usr/local/bin/python3.7
  2.  
  3. from typing import Optional
  4.  
  5. def foo(x: int) -> Optional[int]:
  6.    if (x > 0):
  7.        return x
  8.  
  9. if __name__ == "__main__":
  10.    val = foo(0)
  11.    print(type(val), val)

Lo siguiente imprimiría "<class 'NoneType'> None" porque el número no es mayor a 0.

Aunque Python lo ignore, es muy útil cuando está creando una librería, ya que cuando se usa la función help(...) dentro de la consola misma de Python, le mostraría al usuario qué debería retornar o qué debería pasarse en los argumentos.

También le podría interesar:

*.- https://www.python.org/dev/peps/pep-0585

~ DtxdF
En línea

Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Para que sirve esto? (Python)
« Respuesta #3 en: 25 Mayo 2021, 21:12 pm »

Muchísimas gracias!
En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
para que me sirve python?
Programación General
Nevermind_96 5 5,136 Último mensaje 16 Enero 2012, 23:12 pm
por Nevermind_96
Para que sirve esto?
PHP
Azure 2 2,126 Último mensaje 11 Septiembre 2013, 23:24 pm
por Shell Root
Alguien me explica para que sirve esto ?
Programación C/C++
johndoe1337 3 2,918 Último mensaje 26 Noviembre 2013, 23:27 pm
por ivancea96
Para que sirve python?
Programación General
FKT 8 5,087 Último mensaje 29 Agosto 2015, 15:15 pm
por FKT
¿Java me sirve para esto?
Java
Mr. Bit 2 2,752 Último mensaje 7 Septiembre 2020, 22:10 pm
por Mr. Bit
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines