• [^] # Re: Python vs Ruby

    Posté par . En réponse au journal Choisir un framework web.... Évalué à 2.

    Python est cohérent pour cela également:


    In [12]: class Plop(object):
    ....: pass
    ....:

    In [13]: Plop().__class__
    Out[13]: <class '__main__.Plop'>

    In [14]: Plop.__class__
    Out[14]: <type 'type'>


    Toute (nouvelle) classe est sensée être déclarée comme hériter de 'object' (new style class). Une classe est donc également un objet.

    Devoir 'object' manuellement est effectivement p-e pas très joli, mais cela a été fait pour garder la compatibilité avec les versions précédentes de python. Amha, le gain "garder compatibilité avec une legere surcharge syntaxique" est nettement plus intéressant que "avoir les classes comme des objets" qui en pratique est certe joli mais moins souvent utile que une bonne compatibilité ascendante.
    Python 3k corrige cela, hériter de 'object' n'est plus nécessaire.