Je suis débutant en POO.Python, ajouter les noms de variables à une liste/dict
Je suis en train de coder un jeu avec pygame et je veux ajouter des noms de variables à une liste ou un dict.
j'ai un héros de la classe avec cette initialisation
class Hero:
def __init__(self, posx, posy, image) :
self.name = "Hero"
self.posx = posx
self.posy = posy
self.image = pygame.image.load(image).convert_alpha()
self.width = self.image.get_rect()[2]
self.height = self.image.get_rect()[3]
et j'ai une fonction pour afficher l'image-objet sur l'écran:
def show(self) :
display.blit(self.image, (self.posx, self.posy))
Il fonctionne, il n'y a pas de problème, je suis en fait en utilisant ceci:
captainamerica = Hero(100,400, "sprites/captainamerica/base.png")
captainamerica.show()
ironman = Hero(100,400, "sprites/ironman/base.png")
ironman.show()
Mais je veux utiliser ceci:
listhero = []
listhero.append(captainamerica)
listhero.append(ironman)
i = 0
while i < len(listhero):
listhero[i].show()
Cela ne fonctionne pas car il prend les valeurs de la variable et non les noms des variables.
Merci pour votre aide et désolé si mon anglais était mauvais.
que voulez-vous dire par * cela ne fonctionne pas *? vous devriez incrémenter 'i' dans la boucle * while ou mieux encore utiliser un * forloop * comme ceci:' pour hero dans listhero: hero.show() ' – styvane
ajoutez simplement la ligne suivante juste au-dessus de la définition de show dans la classe – Ankanna