[gull] python2.5 et type(x)
Daniel Cordey
dc at mjt.ch
Mon Aug 4 16:54:57 CEST 2008
On Friday 01 August 2008 05:05:51 Philippe Strauss wrote:
> je connais très peu c++.
L'examen du code C genere pour compiler du code C++ est extremement instructif
:-)
> mais le compilo en fait quoi, c'est juste une "features" pour l'overloading
> d'opérateurs de base ou cela va plus loin et en fait une vraie utilisation
> à la compilation pour (entre autre) débusquer des erreurs humaines?
En-dehors des erreurs flagrantes de typos, de declarations manquantes etc. le
compilateur ne detecte aucune erreur humaine. Ces erreurs sont aussi detectees
dans les langages interpretes puisque le processus est le meme :
lexique/syntaxe/semantique...
La gestion des classes en Python est tres elegante et tres souple. je peux
(re)definir n'importe quelle methode en Python. Or, comme les operateurs sont
des methodes, il est tres facile de redefinir n'importe quel operateur. Les noms
des methodes utilisees comme operateurs sont definis de maniere conventionnelle.
Il suffit donc de definir une methode __add__(self, other) dans une classe, pour
que celle-ci dispose, ou redefinisse, l'operateur '+'. Ceci est aussi valable
lors de l'heritage d'une classe... il suffit de redefinir cette methode pour en
changer le comportement. Lors de l'interpretation du code, lors de
l'interpretation d'une expression contenant un operateur, l'interpreteur va
tenter d'appeler la methode liee a l'objet. C'est entierement dynamque, mais
naturellement plus lent que ce que fait C++, qui impose des definitions
permettant de determiner ce qui est statique de ce qui ne l'est pas.
dc
More information about the gull
mailing list