Partage
  • Partager sur Facebook
  • Partager sur Twitter

Manipulation de classes

    21 décembre 2016 à 13:37:49

    Salut tout le monde ! 

    J'aimerais savoir comment deux classes A et B pourraient interragir entre elles. Par exemple une méthode de la classe A qui utiliserait un attribut de la classe B, ou bien une méthode de B qui utiliserait une méthode A...ect

    Merci d'avance pour vos réponses ! ^^

    • Partager sur Facebook
    • Partager sur Twitter
      21 décembre 2016 à 13:41:35

      Ton code doit être très mal organisé pour vouloir faire ça... C'est dans quel but ? Est-ce-que tu connais la notion d'héritage ?
      • Partager sur Facebook
      • Partager sur Twitter

      Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.

        21 décembre 2016 à 17:04:30

        Je vois c'est donc une question d'organisation...

        J'étais en train de coder un snake et c'est une question qui m'est venue à l'esprit. Voilà dans quel but je vous ai posé cette question :

        class Snake:
            def __init__(self):
                self.direction = "DROITE"
                self.position_x = 100
                self.position_y = 80
                self.liste_coordonnees = [(100,80),(80,80),(60,80)]
                self.longueur_serpent = 3
               
            def afficher_serpent(self, fenetre, image_corps):
                for couple in self.liste_coordonnees:
                    fenetre.blit(image_corps, couple)
           
            def calculer_position(self):
                if self.direction == "DROITE":
                    self.position_x += 20
                    if self.position_x == 600:
                        self.position_x = 0
                if self.direction == "GAUCHE":
                    self.position_x -= 20
                    if self.position_x < 0:
                        self.position_x = 580
                if self.direction == "HAUT":
                    self.position_y -= 20
                    if self.position_y < 0:
                        self.position_y = 480
                if self.direction == "BAS":
                    self.position_y += 20
                    if self.position_y == 500:
                        self.position_y = 0
                       
                       
            def modifier_liste(self):
                self.liste_coordonnees.insert(0, (self.position_x, self.position_y))
                if self.longueur_serpent + 1 == len(self.liste_coordonnees):
                    del self.liste_coordonnees[-1]
                   
        class Pomme:
            def __init__(self):
                self.pomme_x = None
                self.pomme_y = None
               
            def generer_pomme(self, liste):
                i = True
                while i:
                    self.pomme_x = random.randrange(0,580,20)
                    self.pomme_y = random.randrange(0,480,20)
                    if (self.pomme_x, self.pomme_y) in liste:
                        continue
                    else:
                        i = False

        Les variables "fenetre" et "image_corps" sont crées dans le Main.

        Le problème est venu dans la méthode "generer_pomme" : cette fonction avait besoin de l'attribut "liste_coordonnees" de la classe Snake. Du coup je ne savais pas trop comment "l'appeler" en quelque sorte.

        Sinon pour vous répondre, oui je connais la notion d'héritage.

        • Partager sur Facebook
        • Partager sur Twitter

        Manipulation de classes

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown