• [^] # Re: Différence avec Python ?

    Posté par . En réponse à la dépêche Sortie de Ruby 1.8.2. Évalué à 2.

    Ouais, je suis pas trop convaincu (on s'en serait douté :), dans un langage objet il me semble logique de considérer qu'une méthode est de base d'instance, le cas des méthodes statiques étant moins courant (sauf librairie spéciale, style File, Dir, Math ...). Je trouve plus parlante la syntaxe de Ruby pour différencier les deux :
    class Toto
     def Toto.coincoin # méthode de classe
     end
     def plop #méthode d'instance
     end
    end
    
    De plus, dans Python le fait de laisser le choix au programmeur de choisir le nom de la référence sur l'instance courante ne peux poser que des problèmes de maintenabilité (genre il doit bien y avoir des gars qui mettent 'this' (pour les fans de Java/C#/C++/Php) au lieu de 'self', voir 'current' (pour les fans de Eiffel), 'plop' (pour les moules) ...). Du coup je me demandais comment on faisait en Python pour accéder à la méthode définie dans la super-classe (mot clé 'super' en Ruby/Java/SmallTalk) ? en cherchant vite fait sur google je suis tombé sur cette page http://merd.sourceforge.net/pixel/language-study/syntax-across-lang(...) (assez marrante ma fois) qui m'apprend que ça ressemble à ça : super(Class, self).meth(args), j'ai connu plus simple comme syntaxe (tu peux remarquer l'effort que je fais pour lancer un nouveau troll :).