C'est quand même incroyable, même en anglais je ne trouve pas vraiment de forum Python actif... ??
C'est assez incroyable en effet. Essaie la
liste des utilisateurs de Python - tu verras si c'est pas actif
Est-ce que quelqu'un peut me conseiller un tutoriel pour WxPython, et me confirmer son intérêt par rapport à Tkinter ?
Tkinter te produira une interface graphique avec un look dix-neuvième siècle. WxPython produit une interface qui ressemble à une interface Windows sous Windows, à une interface GTK sous Linux, à une interface Aqua sous Mac... Ca ne jure pas sur le reste de tes applications.
Autre question puisque je vois qu'il y a des amateurs de Python : comment puis-je récupérer le nom d'un objet ? Un genre de objet.__name__ comme pour les fonctions ?...
Ah, tu butes sur une des bases du modèle objet de Python.
En Python un objet n'a pas de nom propre. En effet il y a deux espaces bien distincts : celui des noms, et celui des objets. Les objets vivent leur vie en mémoire ; les noms (appelés "variables" dans d'autres langages, mais c'est un faux-ami ici) pointent vers des objets. Mais la relation entre les deux est très souple. Par exemple la fonction len() (fonction standard qui renvoie le nombre d'éléments d'une séquence ou la longueur d'une chaîne) sera en général appelée sous le nom "len". Mais tu peux très bien écrire :
- Code: Tout sélectionner
toto = len
print toto("hello") # renverra "5"
Ainsi un objet (une fonction n'est qu'un objet un peu particulier) n'a pas de nom unique. Il peut être référencé au départ par un nom, ensuite par un autre, ensuite ne vivre que sous forme de référence à l'intérieur d'une liste ou d'un dictionnaire dans un autre objet, etc. La notion de "nom d'un objet" (au singulier) n'a donc aucun sens. La propriété __name__ est définie pour les fonctions car on accède en général à une fonction par un nom unique : __name__ stocke donc le premier nom sous lequel a été définie la fonction. Mais c'est purement une convention. Tu peux le vérifier par :
- Code: Tout sélectionner
>>> def a():
... def b(x):
... return x+1
... return b
...
>>> c=a()
>>> print c.__name__
b
>>> c(5)
6
>>> b(5)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'b' is not defined
La fonction "c" a été définie en appelant "a", qui a renvoyé la fonction définie en interne sous le nom "b". Le nom sous lequel est définie ou appelée la fonction est contingent et n'a rien à voir avec la fonction en tant que telle.
Autre question, y-a-t-il un forum en français pour WxPython ?
Je ne crois pas...
Il y a un truc très bien sous wxPython: la démo intégrée. C'est une démo de toutes les possibilités de wxPython, avec le petit bout de code de chaque démo affiché en vis-à-vis (et le code est modifiable et on peut relancer la démo avec le code modifié !). C'est très très utile.
La démo est installée en standard avec le paquet Windows, je crois qu'il faut la récupérer séparément sous Linux (l'exécutable s'appelle "wxdemo").
Bonne chance
Antoine.