Pour répondre à votre question, oui, c'est l'introspection du cadre.
Mais la syntaxe je créerais à faire la même chose est
with gui.vertical:
text = gui.label('hello!')
items = gui.selection(['one', 'two', 'three'])
@gui.button('click me!')
class button:
def on_click():
text.value = items.value
text.foreground = red
Ici, je mettre en œuvre gui.button
comme un décorateur qui renvoie par exemple le bouton donné quelques paramètres et événements (bien qu'il me semble maintenant que button = gui.button('click me!', mybutton_onclick
est bien aussi).
Je laisserais également gui.vertical
car il peut être implémenté sans introspection. Je ne suis pas sûr de sa mise en œuvre, mais il peut impliquer la mise gui.direction = gui.VERTICAL
de sorte que gui.label()
et d'autres l'utilisent dans le calcul de leurs coordonnées.
Maintenant, quand je regarde, je pense que je vais essayer la syntaxe:
with gui.vertical:
text = gui.label('hello!')
items = gui.selection(['one', 'two', 'three'])
@gui.button('click me!')
def button():
text.value = items.value
foreground = red
(l'idée étant que de la même façon dont l'étiquette est faite de texte, un bouton est faite de texte et fonction)
Lovely, merci beaucoup. – llimllib
De rien! était un problème amusant à aborder, donc tx pour le poser ;-). –
J'ai posté une entrée de blog sur l'utilisation du code que vous m'avez donné, au cas où vous seriez intéressé: http://billmill.org/multi_line_lambdas.html – llimllib