=?iso-8859-1?q?Re:=20=20Equivalencia=20de=20tipos, =20tipado=20?= fuerte y genéricos en python

Cesar Cardenas Desales cescd en yahoo.com.mx
Mie Jun 8 00:01:18 CEST 2005


 --- majulvez en unedaragon.org escribió:

>  Buenas tardes!!
> 
>     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.

Básicamente si el objeto posee la propiedad que le
solicites quiere decir que son equivalentes. Por
ejemplo:

def compara(a, b):
    return a.__str__() == b.__str__()

def compara2(a, b):
    return a.prop == b.prop

class Foo:
    prop = 5

    def __str__(self):
        return "cadena"

cad = "cadena"
foo = Foo()
print cad
print foo


print compara(cad, foo) #True
print compara(foo, cad) #True

print compara2(cad, foo) #Error 'str' object has no
attribute 'prop'
print compara2(foo, cad) #Error 'str' object has no
attribute 'prop'

>     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.

La respuesta de GvR

http://www.artima.com/intv/strongweak2.html

>     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.
> 
>     Un saludo y gracias de antemano.
>     Nos vemos!!!
> 

Genericos? Pues no hay una sintaxis que directamente
declare un tipo como genérico, sin embargo, la
naturaleza del lenguaje lo permite: Mientras que en
C++ o en Java(1.5) debes declarar que una colección
será de tipo genérico, en Python una variable puede
apuntar a un objeto de cualquier tipo

>>> s = ""
>>> s = 1
>>> s = []
>>> s = {}


> 
> 
>
----------------------------------------------------------------
> Este mensaje ha sido enviado por el servidor de EFOR
> e-Consulting.
> 
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
> 


__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis! 
Regístrate ya - http://correo.yahoo.com.mx/ 




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