• [^] # Re: Même remarque que précédemment

    Posté par . En réponse au journal Présentation des librairies pydiderotlibs dédiées à l'enseignement de python. Évalué à 3.

    C'est peut être mathématiquement n'importe quoi, mais cela a une existence informatique.

    Je ne dis pas le contraire, mais il y a plein de choses qui existent en informatique mais qui ne devrait pas. Je rêve, par exemple, d'un monde où les bugs dans les logiciels ne serait pas la norme mais l'exception; même d'un monde où les bugs n'existent plus (et je ne suis pas le seul). Un bug ça veut dire un programme qui correspond à une preuve fausse : c'est mal d'écrire des preuves erronées. ;-)

    les règles sont aussi faites pour être transgresser, c'est un peu comme cela que l'on avance :)

    Certes, mais encore faut-il ne pas faire cela n'importe comment. ;-)

    >>> x = 1
    >>> def f(y) : return x + y
    ... 
    >>> f(0)
    1
    >>> x = "foo"
    >>> f(0)
    Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
     File "<stdin>", line 1, in f
    TypeError: Can't convert 'int' object to str implicitly
    >>>

    et là, j'ai ri. :-D
    C'est juste une adaptation en python de l'exemple donné dans ce cours en LISP de la fin des années 50. Ça a vite était corrigé, et cette gestion de la portée des variables est considérée comme une erreur depuis les années 60. ;-)

    Ceci étant j'ai essayé de redéfinir l'addition sur les entiers, mais ce n'est pas permis.

    >>> int.__add__ = lambda x:x
    Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
    TypeError: can't set attributes of built-in/extension type 'int'

    Donc au final, je ne vois pas de quoi tu voulais parler. Si c'est du polymorphisme ad-hoc, c'est-à-dire, surchargé un opérateur pour qu'il soit définit aussi sur les int, les string, les float... comme dans :

    >>> 1 + 2
    3
    >>> 1.5 + 3.4
    4.9
    >>> "foo" + "bar"
    'foobar'

    alors oui cela correspond à des principes de base des mathématiques, c'est même le degré zéro de l'algèbre moderne. J'en ai parlé ici.

    Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.