Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: EvilGoblin en 18 Noviembre 2010, 17:39 PM

Título: [Python]Struct en Python? (SOLUCIONADO)
Publicado por: EvilGoblin en 18 Noviembre 2010, 17:39 PM
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']
Título: Re: [Python]Struct en Python? (SOLUCIONADO)
Publicado por: seele en 18 Noviembre 2010, 18:02 PM
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

Título: Re: [Python]Struct en Python? (SOLUCIONADO)
Publicado por: Novlucker en 18 Noviembre 2010, 19:45 PM
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
Título: Re: [Python]Struct en Python? (SOLUCIONADO)
Publicado por: flacc en 20 Noviembre 2010, 03:12 AM
idea mia o python es la moda?... quizas que cosas existiran cuando llegue a estudiar a la universidad  :P...