[Python]Struct en Python? (SOLUCIONADO)

Iniciado por EvilGoblin, 18 Noviembre 2010, 17:39 PM

0 Miembros y 1 Visitante están viendo este tema.

EvilGoblin

en C seria

struct frutas{
  int manzanas;
  int frutillas;
  int naranjas = 0;
}canasta;

canasta.manzanas = 23;

printf ("cantidad de manzanas: %i\r\n",canasta.manzanas);


en python tengo


canasta = ([0,0,0])
canasta[0] = 23
print "Cantidad de manzanas:".canasta[0]


pero a lo largo del codigo me puedo marear con esto.
Cual seria la forma de crear objetos dentro de un array ?







SOLUCION:
una posible solucion (que voy a adoptar)

frutas={'naranjas':1.5,'manzanas':2.3,'peras':1.5}
try:
    print frutas['sandias']
except KeyError:
    print 'No existe dicha fruta'
   
print frutas['naranjas']

frutas['naranjas'] = 22

print frutas['naranjas']
Experimental Serial Lain [Linux User]

seele

python utiliza registros (records) para solventar estos casos.
simplemente importas el modulo record

Código (python) [Seleccionar]
from record import record

class Persona(record):
  nombre = ''
  edad = 0


se utiliza la palabra reservada class luego le sigue el nombre del tipo de datos que queremos crear y entre parentesis el modulo record
para crear un tipo de datos usas

Código (python) [Seleccionar]
juan = Persona(nombre='Juan', edad=19)

luego para usar el dato

Código (python) [Seleccionar]
print juan.edad

saludos


Novlucker

Record no es standard, así que seguramente no le funcione :rolleyes:
Se pueden usar diccionarios "normales" o cosas como esta :P

Código (python) [Seleccionar]
class Canasta():
    def __init__(self,**frutas):
        self.__dict__.update(frutas)

j = Canasta(Manzana=23,Naranja=36)
print j.Manzana
print j.Naranja

class Fruta():
    def __init__(self,precio,cantidad):
        self.precio = precio
        self.cantidad = cantidad

k = Canasta(Manzana=Fruta(30,100),Naranja=Fruta(20,500))
print k.Manzana.cantidad
print k.Naranja.precio


Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

flacc

idea mia o python es la moda?... quizas que cosas existiran cuando llegue a estudiar a la universidad  :P...