C'est pas "que" déconcertant, c'est que ça peut faire facilement péter les hypothèses que pourra faire un code utilisant la classe, dans une bibliothèque par exemple. Tu supposes que le code va marcher partout, manque de bol lors de l'import c'est quasi une classe différente que tu utilises en important la même biblio.
En typage statique c'est aussi possible de faire ce genre de truc, avec des macros en C par exemple, mais potentiellement si t'as changé la signature d'une fonction ça passera pas la compilation. En typage dynamique tu fais péter tous les gardes fous et tu peux faire vraiment sauter toutes les hypothèses que va faire le code client, et ça peut sauter à la figure n'importe quand à l'exécution. Ça rejoint un peu le genre de critique qu'on peut faire à l'Aspect Oriented Programming, ou a la fin tout peut être modifié et tu n'as plus vraiment de garantie de savoir ce qui va être exécutés, les spécifications du code que t'utilise peuvent être changées un peu n'importe comment.
[^] # Re: what
Posté par thoasm . En réponse au journal écrire du code dans le corps d'une classe python. Évalué à 4.
C'est pas "que" déconcertant, c'est que ça peut faire facilement péter les hypothèses que pourra faire un code utilisant la classe, dans une bibliothèque par exemple. Tu supposes que le code va marcher partout, manque de bol lors de l'import c'est quasi une classe différente que tu utilises en important la même biblio.
En typage statique c'est aussi possible de faire ce genre de truc, avec des macros en C par exemple, mais potentiellement si t'as changé la signature d'une fonction ça passera pas la compilation. En typage dynamique tu fais péter tous les gardes fous et tu peux faire vraiment sauter toutes les hypothèses que va faire le code client, et ça peut sauter à la figure n'importe quand à l'exécution. Ça rejoint un peu le genre de critique qu'on peut faire à l'Aspect Oriented Programming, ou a la fin tout peut être modifié et tu n'as plus vraiment de garantie de savoir ce qui va être exécutés, les spécifications du code que t'utilise peuvent être changées un peu n'importe comment.