Transfert d'une variable d'un fichier python à un autre du meme projet
Peterduino
-
vortex -
vortex -
Bonjour,
Sauriez vous comment je pourrais transférer une variable que je definit dans main.py vers un autre fichier py du meme projet ?
Merci beaucoup d'avance,
Cdlt.
Voici mon code (c'est pour un jeu video) :
main.py
player.py
Sauriez vous comment je pourrais transférer une variable que je definit dans main.py vers un autre fichier py du meme projet ?
Merci beaucoup d'avance,
Cdlt.
Voici mon code (c'est pour un jeu video) :
main.py
import pygame
import tkinter
def fenetre_tkinter():
app = tkinter.Tk()
app.title("Pyte Adventure Launcher")
app.geometry("600x600+340+100")
app["bg"]="green"
perso = 0
def set_perso1(): perso == 1
def set_perso2(): perso == 2
def set_perso3(): perso ==3
p1 = tkinter.PhotoImage(file="perso1.png")
btp1 = tkinter.Button(app, image=p1, width=64, height=77, bg="green", command=set_perso1()).place(x=168, y=50)
p2 = tkinter.PhotoImage(file="perso2.png")
btp2 = tkinter.Button(app, image=p2, width=64, height=77, bg="green", command=set_perso2()).place(x=268, y=50)
p3 = tkinter.PhotoImage(file="perso3.png")
btp3 = tkinter.Button(app, image=p3, width=64, height=77, bg="green", command=set_perso3()).place(x=368, y=50)
player.py
import pygame
from main import fenetre_tkinter
class Player(pygame.sprite.Sprite):
def __init__(self, x, y):
super().__init__()
if perso == 1 : self.sprite_sheet = pygame.image.load("player1.png")
if perso == 2: self.sprite_sheet = pygame.image.load("player2.png")
if perso == 3: self.sprite_sheet = pygame.image.load("player3.png")
self.image = self.get_image(0, 0)
self.image.set_colorkey([0, 0, 0])
self.rect = self.image.get_rect()
self.position = [x, y]
A voir également:
- Importer fichier python dans un autre
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
3 réponses
Bonjour,
On imagine que cette variable perso tu en as besoin dans ta classe Player, en conséquence ton problème est simple, l'ajout d'un argument perso au “constructeur” de ta classe Player résoud simplement ce “problème”.
On imagine que cette variable perso tu en as besoin dans ta classe Player, en conséquence ton problème est simple, l'ajout d'un argument perso au “constructeur” de ta classe Player résoud simplement ce “problème”.
Ok merci beaucoup, donc j'ai fait :
mais il ne le reconnait pas meme avec le import et le fais que je rejoute perso en constructeur de ma methode "fenetre_tkinter" dans le main ...
Je suis débutant donc je n'ai peut etre pas compris ce que tu m'as dis :-(
from main import fenetre_tkinter class Player(pygame.sprite.Sprite, perso):
mais il ne le reconnait pas meme avec le import et le fais que je rejoute perso en constructeur de ma methode "fenetre_tkinter" dans le main ...
Je suis débutant donc je n'ai peut etre pas compris ce que tu m'as dis :-(
Le constructeur (l'usuel tout du moins), c'est la méthode __init__
Ce que tu as fait est d'ajouter comme héritage à ta classe Player une classe perso, forcément ça balance une erreur.
Soit :
Mais pourquoi as-tu un mélange tkinter et pygame ?
Tu devrais t'en tenir à une seule bibliothèque graphique, pygame étant le mieux puisque c'est un jeu si j'ai bien saisi.
De plus quelques trucs dans ta class Player me chiffonnent, mais comme je n'ai pas vu le reste de la classe, c'est peut-être cohérent.
Ce que tu as fait est d'ajouter comme héritage à ta classe Player une classe perso, forcément ça balance une erreur.
Soit :
class Player(pygame.sprite.Sprite):
def __init__(self, x, y, perso):
super().__init__()
self.sprite_sheet = pygame.image.load(f"player{perso}.png")
self.image = self.get_image(0, 0)
self.image.set_colorkey([0, 0, 0])
self.rect = self.image.get_rect()
self.position = [x, y]
Mais pourquoi as-tu un mélange tkinter et pygame ?
Tu devrais t'en tenir à une seule bibliothèque graphique, pygame étant le mieux puisque c'est un jeu si j'ai bien saisi.
De plus quelques trucs dans ta class Player me chiffonnent, mais comme je n'ai pas vu le reste de la classe, c'est peut-être cohérent.