Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Kase en 17 Marzo 2011, 08:24 am



Título: python castear a dato/objeto?
Publicado por: Kase en 17 Marzo 2011, 08:24 am
hola, yo en python normalmente uso las listas, las tuplas y los diccionarios como burros de carga para todo lo que necesito hacer..

el problema es que comparandolo contra java
en java yo puedo hacer un tipo de dato:
 fruta
con atributos color, tamaño, sabor, etc.. 

y eso es considerado mi tipo de dato fruta,  y  puedo tener un objeto del tipo Object   y a este objeto puedo castearlo con mi tipo de dato fruta....

digamos  objeto object
color=>verde
tamaño=>grande
etc

y  yo puedo hacer  esto:
(fruta)objeto para combertir mi objeto en un tipo de dato fruta..

y yo se que puedo tener un diccionario en python para almacenar estos datos,
la gran duda es...
en python las clases/objetos tambien pueden ser consideradas tipos de datos?
existe un tipo de dato Object?? (se que en python no se declaran tipos)
este tipo de dato es casteable a una clase???
o puede castearse un diccionario a una clase???

PD: realmente no veo el sentido a hacer todo eso, siendo que python tiene pontentes erramientas como listas, tuplas, diccionarios.. solo ando curoseando


Título: Re: python castear a dato/objeto?
Publicado por: Novlucker en 17 Marzo 2011, 13:36 pm
Python es un lenguaje de tipado dinamico, por lo que no necesitas de casting en realidad, y eso queda sobre todo para los tipos de datos y no las clases.

Por esta razón lo que se refiere a poliformismo en Python, se resume a algo más sencillo :P

http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming#Python

Saludos


Título: Re: python castear a dato/objeto?
Publicado por: lnvisible en 20 Marzo 2011, 00:00 am
En python puedes hacer clases como en java y mucho mejor, mira esto
http://docs.python.org/release/3.1.3/reference/compound_stmts.html#class-definitions

Esta es una clase que hice:
http://foro.elhacker.net/scripting/python_objetos_que_se_guardan_y_cargan_solos-t313111.0.html;msg155261

Como java, pero mucho mejor, mira esto:
http://www.builderau.com.au/program/python/soa/Less-painful-getters-and-setters-using-properties-in-Python/0,2000064084,339283427,00.htm

:D