Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

appeler une class depuis une autre class

1 réponse
Avatar
oliv
Dans une appli pour créer des bouton ayant chacun sa fonction, j'utilise la class suivante

class Callback

def __init__(self,function,argument)
self.function = functio
self.argument = argumen

def __call__(self)
self.function(self.argument
def show(arg)
#print "Je suis le bouton %s" %ar
print "Je suis le bouton ", arg #marche aussi . Quelle différence ???????

recherchepoint(arg
que j'appelle de la façon suivante dans le corps du programme

for x in range(len(petitsmots)):
b=Button(cadre3,text=x,command=Callback(show,x)

ceci fonctionn
maintenant, je veux encapsuler moin programme dans une autre class, mais lorsque j'appelle la fonction, ça ne marche plus ???
Faut il changer "command=Callback(show,x)

est il possible d'appeler cette class depuis une fenetre créée en wxpython

--
oliv

-----------------------------------------------------------------------
Voir theme: http://www.frbox.net/viewtopic-534307.htm

Envoyé de http://www.frbox.ne

1 réponse

Avatar
jean-michel bain-cornu
Bonsoir,
oliv wrote:
Dans une appli pour créer des bouton ayant chacun sa fonction, j'utilise la class suivante :

class Callback:

def __init__(self,function,argument):
self.function = function
self.argument = argument

def __call__(self):
self.function(self.argument)
def show(arg):
#print "Je suis le bouton %s" %arg
print "Je suis le bouton ", arg #marche aussi . Quelle différence ????????
ligne commentée : il y a 1 <espace> entre les 2 derniers mots

ligne active : il y en a 2 (à cause de la virgule)

recherchepoint(arg)
que j'appelle de la façon suivante dans le corps du programme :

for x in range(len(petitsmots)):
b=Button(cadre3,text=x,commandÊllback(show,x))

ceci fonctionne
maintenant, je veux encapsuler moin programme dans une autre class, mais lorsque j'appelle la fonction, ça ne marche plus ????
Faut il changer "commandÊllback(show,x)"
ça serait pas + simple une bête fonction avec un test sur le texte de

l'objet déclencheur ?

est il possible d'appeler cette class depuis une fenetre créée en wxpython ?
Peut-être en créant un objet d'abord (objÊllback(patati,patata)) puis

en qualifiant la fonction dans le bind (obj.__call__) ?
J'avoue que je suis un peu perplexe et que ça me paraît un peu
compliqué. Pourquoi par exemple ne pas créer une classe dérivée de
wxButton que tu utiliseras dans ta boucle (b=monButton...etc...) ?
A+
jm