RE: [Python-es] Equivalencia de tipos, tipado fuerte ygenéricos en python

Hernán Martínez Foffani hernan en orgmf.com.ar
Mar Jun 7 20:01:33 CEST 2005


>     Soy  nuevo en Python y mas nuevo en la lista aún, y tengo unas
> preguntas sobre Python  relativas a su diseño.
>
>     Sabe alguien como realiza python la equivalencia de tipos para
> saber si dos tipos son equivalentes y sus variables puedan operar de
> la misma forma?? Yo se q existen la nominal y la estructural pero
> desconozco si es aplicable a un lenguaje como python.

Hay autores que también hablan de equivalencia funcional que supongo
es el nombre científico a lo que sería el tipo de datos Pato
("Duck Typing"):

''Si camina como un pato, grazna como un pato entonces es un pato.''

>     Otra cosa, considerais a Python un lenguaje fuertemente tipado??
> Es q he encontrado versiones contradictorias en internet y no se muy
> bien a q hacer caso. En algunos sitios dicen que sí q es fuertemente
> tipado xq se necesita una conversión explícita de tipos y q un objeto
> siempre es del mismo tipo y no se puede cambiar (parece ser q en las
> últimas versiones sí q se debe poder hacerlo aunque muy
> especialmente) y en otros dice q no, q no es fuertemente tipado. Mi
> opinión es q sí q es fuertemente tipado aunque vamos, no estoy al
> 100% seguro.

El problema es que cada uno interpreta en forma diferente la
"fortaleza" del sistema de tipos de un lenguaje.
En particular yo comparto tu opinión.

>     Ya la última pregunta. Si alguno habeis programado en Ada o en
> algunos otros lenguajes, este soporta tipos genéricos. Python lo
> soporta?? Igual estoy confundiendo el tipado dinámico con los tipos
> genéricos y me estoy haciendo un lio.

Los "tipo genéricos", como los llamas, es el mecanismo para
hacer programación genérica en lenguajes de tipos de datos
estáticos.  En los lenguajes de tipo de datos dinámicos ese
tipo de programación viene de fábrica o como mucho sería
necesario definir un protocolo.

En la práctica desde hace 15 años se puede hacer "programación
genérica" con Python ;-)

-H.




Más información sobre la lista de distribución Python-es