Comment passer une variable dans une fonction ??

Comment passer une variable dans une fonction ?? - Python - Programmation

Marsh Posté le 02-12-2018 à 11:56:58    

Comment peut on faire passer une variable dans une fonction ?
Je veux pouvoir lui attribuer une valeur et recuperer cette valeur dans la fonction.
 

Code :
  1. vclic = 0
  2. def clicgauche(self, event):
  3.        
  4.     if vclic == 0:
  5.         vclic = 1


 
Merci de votre aide !

Reply

Marsh Posté le 02-12-2018 à 11:56:58   

Reply

Marsh Posté le 02-12-2018 à 12:09:18    

erwan83 a écrit :

Comment peut on faire passer une variable dans une fonction ?
Je veux pouvoir lui attribuer une valeur et recuperer cette valeur dans la fonction.
 

Code :
  1. vclic = 0
  2. def clicgauche(self, event):
  3.        
  4.     if vclic == 0:
  5.         vclic = 1


 
Merci de votre aide !


 
Ou la, je te conseille vivement de suivre un tutoriel pour t’expliquer la programmation. N’importe lequel introduira le concept d’argument de fonction....
 
Il suffit de mètre vclic en argument : def clicgauche(self, event, vclic):
 
Puis de le spécifier lorsqu’on appel la fonction: clicgauche(event, vclic)
 
Bonne journée

Reply

Marsh Posté le 02-12-2018 à 13:25:58    

Alors voilà pourquoi ça me bloque :
Je fais simplement une fonction clic qui fonctionne normalement quand on clic
MAIS JE VOUDRAIS LUI PASSER UN ARGUMENT EXTERIEUR qui est vclic
(en fait quand tu clic, un compteur bascule de 1 à 0 et vice versa si c'est 1, ca affiche un ecran, si c'est 0 ça fait tout un calcul)
 

Code :
  1. class MyApp(Tkinter.Frame):
  2.     def __init__(self, parent, *args, **kwargs):
  3.         Tkinter.Frame.__init__(self, parent, *args, **kwargs)
  4.         self.parent = parent
  5.         self.parent.geometry('1520x1520')
  6.         self.MainFrame()
  7.        
  8.     def MainFrame(self):
  9.         self.parent.bind('<Button-3>', self.clicdroit)
  10.         self.parent.bind('<Button-1>', self.clicgauche)
  11.         self.board_frame = Tkinter.Frame(self.parent, padx=1, pady=1, bg="black" )
  12.     def clicgauche(self, event,vclic):
  13.         if vclic == "0":
  14.             vclic = "1"


Si je lui demande d'appeler vclic dans la fonction sans le déclarer (parenthèses)  il me dit que je dois attribuer une valeur...
UnboundLocalError: local variable 'vclicgauche' referenced before assignment
Si je le déclare (parenthèses) il me dit qu'il ne voit que deux arguments sur trois
TypeError: clicgauche() takes exactly 3 arguments (2 given)


Message édité par erwan83 le 02-12-2018 à 13:33:10
Reply

Marsh Posté le 02-12-2018 à 13:49:14    

Bon, j'ai saisi que des valeurs ne peuvent pas passer de l'exterieur vers l'interieur d'une fonction MAIS
J'ai bien besoin de créer une fonction pour détecter un clic souris (ou autre d'ailleurs)
Et une fois que l'utilisateur a cliqué (ce qui est détecté par la fonction) je dois lancer tout un tas de calculs...
C'est ça que j'ai du mal à visualiser
J'etais parti sur une fonction clicgauche qui detecte un event sur self là j'ai bien compris le principe
Mais après je dois PASSER TOUT UN TAS DE VALEURS qui seront modifiées à partir de la détaction de ce clic.....


Message édité par erwan83 le 02-12-2018 à 13:53:00

---------------
http://www.ypikay.com
Reply

Marsh Posté le 02-12-2018 à 14:28:26    

Les variables globales !!!


---------------
http://www.ypikay.com
Reply

Marsh Posté le 02-12-2018 à 18:56:47    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed