
duda con POO Python
Publicado por pablo (2 intervenciones) el 13/12/2014 15:20:24
Hola amigos, estoy estudiando la POO en Python. No tengo todavía mucha destreza en el tema. Tengo aquí un ejemplo bastante básico y quería hacer una pregunta concreta.
Como se ve en el código de abajo, tengo una clase (Coche) con 2 métodos(gasto y potencia). El programa me funciona perfectamente si solamente hago un objeto, pero mi intencion es hacer varios como escribo en los 2 ultimos párrafos . Básicamente hago 10 objetos cuyos parámetros color, gasolina y cilindrada se escojan aleatoriamente de entre los valores descritos en las 3 listas al inicio del programa.
Mi duda es: Cómo puedo definir mis 10 objetos sin tener que escribirlos uno a uno? lo he intentado creandome una lista de objetos, pero me da error. Hay alguien que sepa como lo puedo hacer?
Si sólo quiero hacer un objeto funciona sin problemas, para ello haría algo como:
my_coche = Coche(2,3,"rojo")
my_coche.gasto()
my_coche.potencia()
Pero lo que quiero es crear varios sin tener que llamarlos uno a uno. Imaginemos que tuviera 100 en vez de 10. Seria muy tesioso :)
Muchas gracias y un saludo
Como se ve en el código de abajo, tengo una clase (Coche) con 2 métodos(gasto y potencia). El programa me funciona perfectamente si solamente hago un objeto, pero mi intencion es hacer varios como escribo en los 2 ultimos párrafos . Básicamente hago 10 objetos cuyos parámetros color, gasolina y cilindrada se escojan aleatoriamente de entre los valores descritos en las 3 listas al inicio del programa.
Mi duda es: Cómo puedo definir mis 10 objetos sin tener que escribirlos uno a uno? lo he intentado creandome una lista de objetos, pero me da error. Hay alguien que sepa como lo puedo hacer?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import random
COLOR = ["blanco", "verde", "negro", "rojo", "azul", "blanco"]
GASOLINA = [1, 2, 3, 4, 5, 6, 7, 8, 9]
CILINDRADA = [10, 20, 30, 40, 50, 60, 70, 80, 90]
class Coche:
def __init__(self, gasolina, cilindrada, color):
self.gasolina = gasolina
self.cilindrada = cilindrada
self.color = color
def gasto(self):
if self.gasolina > 5:
print "Coche", self.color, "gasta mucho"
else:
print "Coche", self.color, "gasta poco"
def potencia(self):
if self.cilindrada > 50:
print "Coche", self.color, "es potente"
else:
print "Coche", self.color, "no es potente"
lista=[]
for i in range(10):
i = [random.choice(GASOLINA), random.choice(CILINDRADA), random.choice(COLOR)]
lista.append(i)
for k in range(10):
my_coche = Coche(lista[k])
my_coche.gasto()
my_coche.potencia()
Si sólo quiero hacer un objeto funciona sin problemas, para ello haría algo como:
my_coche = Coche(2,3,"rojo")
my_coche.gasto()
my_coche.potencia()
Pero lo que quiero es crear varios sin tener que llamarlos uno a uno. Imaginemos que tuviera 100 en vez de 10. Seria muy tesioso :)
Muchas gracias y un saludo
Valora esta pregunta


0