IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Comment appeler une méthode d'une classe ?


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 174
    Par défaut Comment appeler une méthode d'une classe ?
    Bonjour !

    Je n'arrive pas à faire tirer un vaisseau en appelant sa méthode Tire(0)

    J'ai l'erreur : La classe Vehicule (dont est issu le vaisseau) n'a pas de méthode Tire()

    AttributeError: 'Vehicule' object has no attribute 'Tire'

    La classe est celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class Vehicule() :
        def _init_(self, Nom, Position, Attaque, Resistance, Vitesse)
            self.Nom=Nom
            self.Position=Position
            self.Attaque=Attaque
            self.Resistance=Resistance
            self.Vitesse=Vitesse
     
            self.Missiles=[] # Stock des missiles du vaisseau.
     
            def Tire(self, arme) :
                if arme == 0 :
                    self.Missiles.append(py.Rect(self.Position[0]+10,self.Position[1],8,8))

    J'appelle la méthode en passant par l'instance MonVaisseau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MonVaisseau = Vehicule()
     
    MonVaisseau.Tire(0)
    Je voudrais que ce soit le vaisseau qui ait cette méthode tire et non la classe Vehicule. Et surtout pouvoir l'appeler.

  2. #2
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 707
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    En Python, l'indentation sert à définir la structure et la hiérarchie du code.

    Dans une classe, il faut indenter le code comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class MyClass:
        """A simple example class"""
        i = 12345
     
        def f(self):
            return 'hello world'
    Dans votre cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    import pygame as py  
     
    class Vehicule:
     
        def __init__(self, Nom, Position, Attaque, Resistance, Vitesse):
            # ↑ Ajout des doubles underscores et du ":" à la fin
            self.Nom = Nom
            self.Position = Position  # Doit être une liste ou un tuple [x, y]
            self.Attaque = Attaque
            self.Resistance = Resistance
            self.Vitesse = Vitesse
     
            self.Missiles = []  # Stock des missiles du vaisseau.
     
        # Alignement des méthodes commençant par def
        def Tire(self, arme):
            if arme == 0:
                # Crée un rectangle pour le missile juste au-dessus/à côté du véhicule
                self.Missiles.append(py.Rect(self.Position[0] + 10, self.Position[1], 8, 8))

    Cela dit je n'ai pas testé et il faut voir aussi l'initialisation des paramètres de la classe

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/08/2010, 22h50
  2. comment appeler une classe java dans une page jsp?
    Par limalima dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 21/11/2008, 22h59
  3. Réponses: 2
    Dernier message: 26/11/2007, 12h22
  4. Réponses: 6
    Dernier message: 25/04/2007, 18h07
  5. Réponses: 2
    Dernier message: 31/08/2005, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo