Ou alors après l'idée c'est "juste" de se reposer sur les tests pour faire cette détection ? Ce que je peux comprendre !
C'est ça normalement et le langage te fourni ce qu'il faut pour documenter tes méthodes et faire des tests.
À noter aussi que des langages comme Scala ont du duck typing, appelé structural typing, où tu dis qu'une méthode ne peut prendre en paramètre qu'un objet qui a telle ou telle méthode ou particularité dans sa structure.
C'est en fait très différent. L'inférence de type est une analyse statique qui fait que tu as une étape dans la compilation qui te fourni la garanti que le typage de ton programme est valide. Imaginons une méthode qui contient le code :
if (arg.valide()) {
arg.foo();
} else {
arg.bar();
}
En scala tu ne pourra pas produire de binaire si l'objet arg que tu passe en paramètre n'a pas la méthode valide(), foo() et bar() en python tu as tout à fait le droit de passer un objet qui n'a que les méthodes valide() et foo() (il faut juste que tu sois sûr que valide() renvoi toujours vrai. C'est ce qui fait qu'en python il est impossible d'avoir de vérification statique.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Formulation...
Posté par barmic . En réponse au journal Indication de type pour Python. Évalué à 5.
C'est ça normalement et le langage te fourni ce qu'il faut pour documenter tes méthodes et faire des tests.
C'est en fait très différent. L'inférence de type est une analyse statique qui fait que tu as une étape dans la compilation qui te fourni la garanti que le typage de ton programme est valide. Imaginons une méthode qui contient le code :
En scala tu ne pourra pas produire de binaire si l'objet arg que tu passe en paramètre n'a pas la méthode valide(), foo() et bar() en python tu as tout à fait le droit de passer un objet qui n'a que les méthodes valide() et foo() (il faut juste que tu sois sûr que valide() renvoi toujours vrai. C'est ce qui fait qu'en python il est impossible d'avoir de vérification statique.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)