Alors ![[[sticker:p/1kkn]]](https://image.jeuxvideo.com/stickers/p/st/1kkn)
Déjà niveau nomenclature il y a quelques trucs que tu peux améliorer
- Les noms de classes commencent par une majuscule (ici "Compte")
- Les noms des méthodes commencent par une minuscule, il y a des majuscules uniquement à chaque nouveau mot ("ceciEstUnNomDeMethode", ici ce serait "afficherCompte" )
- Pas d'accents sinon ça fout le bordel
Ensuite niveau code tes méthodes ne sont pas dans ta classe. En Python il n'y a pas d'acccolades pour délimiter le domaine ou l'appartenance d'une variable/méthode, tout se fait avec des tabulations.
class MaClasse:
# Je suis dans la classe
# Je ne suis plus dans la classe
Tu essaies là de faire de la programmation orientée objet, je te conseille de suivre un cours sur le sujet, tu as l'air un peu de t'embrouiller.
Ta classe ici permet de définir ce qu'est un compte et ses attributs (ici il n'y a que le solde), il faut dans un premier temps définir un constructeur, qui va être appelé quand tu voudras créer un objet de type "Compte" et qui va fixer les attributs initiaux de ton objet. On fixe ici le montant à 1000.
class Compte:
# Constructeur
def __init__(self):
self.solde = 1000
# On test maintenant si ça marche
monCompte = Compte() # On crée un compte on faisant appel au constructeur
print(monCompte.solde)
"1000"
Tu peux aussi faire en sorte de fixer le solde par défaut lors de la création de l'objet plutôt que dans la classe, si tu es amené à créer des comptes avec un montant de départ différent
class Compte:
# Constructeur
def __init__(self, solde):
self.solde = solde
monCompte = Compte(1000) # On crée un compte on faisant appel au constructeur
print(monCompte.solde)
"1000"
Tu peux ensuite rajouter les méthodes que tu souhaites pour afficher les informations de ton compte.
class Compte:
# Constructeur
def __init__(self, solde):
self.solde = solde
def infos(self):
print("Je possède",self.solde, "argent sur mon compte")
monCompte = Compte(1000) # On fait appel au constructeur
monCompte.infos()
"Je possède 1000 argent sur mon compte"
Enfin, en Python, les attributs d'un objet sont par défaut publiques, ce qui n'est pas le cas en général. Il est préférable de ne pas y accéder directement mais bon, je ne pense pas qu'on te demande quelque chose d'aussi rigoureux. Donc si tu veux créditer ton compte, tu peux simplement faire:
class Compte:
# Constructeur
def __init__(self, solde):
self.solde = solde
def infos(self):
print("Je possède",self.solde, "argent sur mon compte")
monCompte = Compte(1000) # On fait appel au constructeur
monCompte.infos()
monCompte.solde += 500
monCompte.infos()
"Je possède 1000 argent sur mon compte"
"Je possède 1500 argent sur mon compte"
Ou alors plus rigoureusement comme tu as fait avec ta méthode crediter() (à laquelle tu auras ôté l'accent
), mais en l'appelant ainsi:
monCompte.crediter(500)