Instancio 2 objetos de la clase Guerrero, uno para la PC y otro para el jugador, ambos objetos son de la misma clase.
En el constructor de esta clase, hace que la lista "guerreros" tome un valor aleatorio por cada indice.
Primero creo un objeto llamado guerreroPlayer y luego imprimo su lista con los números aleatorios que me genero. Luego lo mismo hago pero con el objeto guerreroPC, hasta ahí todo bien, cada lista con valores diferentes.
Pero el error esta en cuando vuelvo a imprimir los valores de la lista del objeto guerreroPlayer. Me muestra los mismos valores que tiene el objeto guerreroPC :-\ y no los mismos de antes.
Alguien sabe por que sucede esto? gracias de antemano
import random
class Guerrero():
nombre = "";
guerreros = [0,0,0,0,0,0,0,0,0,0];
def __init__(self, nombre):
self.nombre = nombre;
for numero in range(0, 10):
numeroRandom = random.randint(1,1000);
self.guerreros[numero] = numeroRandom;
def imprimirNumeros(self):
for i in self.guerreros:
print(i);
print("********************");
guerreroPlayer = Guerrero("Player");
guerreroPlayer.imprimirNumeros();
guerreroPc = Guerrero("PC");
guerreroPc.imprimirNumeros();
guerreroPlayer.imprimirNumeros();
Prueba sin declarar las variables fuera del __init__
import random
class Guerrero():
def __init__(self, nombre):
self.nombre = nombre
self.guerreros = []
for numero in range(0, 10):
numeroRandom = random.randint(1,1000)
self.guerreros.append(numeroRandom)
def imprimirNumeros(self):
for i in self.guerreros:
print(i)
print("********************")
guerreroPlayer = Guerrero("Player")
guerreroPlayer.imprimirNumeros()
guerreroPc = Guerrero("PC")
guerreroPc.imprimirNumeros()
guerreroPlayer.imprimirNumeros()
Gracias era eso ;-) ;-) ;-)
ya te solucionaron el problema! 2 cosas más:
1) seguro venís de otro lenguaje de programación, por el ";" al final de línea(no se usa en python
2) esto("***********") es mejor ("*"*20)
Exacto, vengo de Java.
Jeje si sabia que no se usaban, pero lo uso de costumbre, igual muchas gracias por tus consejos ;D