13Fermer15
ExtendeDLe 29/09/2007 à 23:12
La différence avec les langages fortement typés est que le contrat est implicite (le contrat est vérifié à l'exécution). Python n'impose pas l'utilisation d'éléments techniques (type interface Java ou classes C++ abstraites) pour décrire le contrat. Mais rien ne t'empêche de le définir dans une classe techniquement inutile comme tu le faisais dans ./2 pour rendre ça explicite. Tu pourrais même avoir une description textuelle si c'est plus simple à écrire ou plus lisible.

Faire le choix d'un langage dynamique comme Python c'est déplacer une partie des validations normalement faites au moment de la compilation vers des validations à l'exécution. Ca a ses avantages (plus de souplesse, moins de lourdeur) et ses inconvénients (plus de risques), mais en tout cas ce n'est pas ça qui t'empêche de vers de l'inversion de dépendance, loin de là.