CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Stocker une variable depuis une classe?

lucasdegwada
lucasdegwada
Niveau 5
07 mars 2015 à 17:07:03

Bonjour, je travaille sur un petit projet informatique avec des amis et on est devant un petit problème:
On voudrait que dans une classe, on puisse stocker une variable (c'est a dire le nom d'un fichier), pour la réutiliser plus tard.
Par exemple :

fichier = 'text/mur_fleches'

On voudrait réutiliser la variable fichier plus tard dans une autre classe avec :

for ligne in fichier:
num_ligne += 1
if num_ligne == x:
str = ligne
afficher = font.render(str, 1, (255, 255, 255))
fenetre.blit(afficher, (40,450))

Le truc c'est que pour l'instant si on fait ça, on a le droit au message d'erreur suivant durant la boucle de la seconde classe :

NameError: name 'fichier' is not defined

qui laisse à penser que la variable est supprimée du cache quand on sort de la première classe.

Alors comment faire svp? Je vous remercie d'avance !

[Kyomaro]
[Kyomaro]
Niveau 10
07 mars 2015 à 17:31:08

Une classe peur avoir des attributs, c'est à dire que si tu veux que ta classe ait une variable fichier, il faudra faire comme ça, en supposant que ta classe s'appelle "File"':
class File:     def __init__(self, fichier):         self.fichier = fichier

Puis pour accéder à la variable fichier depuis l'exterieur de la classe, tu créé un instance de File, par exemple file = File(fichier)
puis tu y accèdes en faisant file.fichier
Mais si tu ne savais pas ça je te conseille de revoir les classes avant d'aller plus loin :ok:

lucasdegwada
lucasdegwada
Niveau 5
07 mars 2015 à 17:46:07

Merci beaucoup !

rangerprice
rangerprice
Niveau 10
07 mars 2015 à 18:01:25

Dans la première classe, faire une méthode getFile() qui renvoie la variable fichier

et utiliser getFile() dans la 2nd classe

[Kyomaro]
[Kyomaro]
Niveau 10
07 mars 2015 à 18:26:39

Ouais enfin j'ai fait ça vite fait oh :nah:
Ce que ranger veut dire c'est que tu peux faire une fonction pour chacun de tes attributs, ainsi c'est plus sécurisé.
Exemple, dans ta classe, ça donnerait ça :
class File:     def __init__(self, fichier):         self.fichier = fichier     def getFichier():         return self.fichier

Et au lieu d'accéder à la variable fichier en faisant file.fichier, tu fais file.getFicher() :ok:

[Kyomaro]
[Kyomaro]
Niveau 10
07 mars 2015 à 18:34:11

Excuse moi je me suis trompé, dans la fonction getFicher, elle prend un argument : self
Donc ça donnerait ça corrigé:
def getFicher(self):     return self.fichier
:)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware