=?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