Une langue typée dynamiquement (par exemple, Python) effectue une vérification de type au moment de l'exécution, de sorte qu'une variable ou un paramètre peut faire référence à une valeur de n'importe quel type. La définition de la langue nécessite-t-elle que les variables et les paramètres ne soient pas saisis? Serait-il logique de modifier la langue pour avoir des variables et des paramètres avec des types?Types dans les langages à typage dynamique
Répondre
Cette question est probablement gonna get fermé à moins sauvé grâce par quelqu'un comme @ jon-Skeet. Jusque là, je crois que quiconque vient d'un arrière-plan de programmation fortement typé plaidera pour au moins l'option de spécifier la frappe. Mais à la fin de la journée, les créateurs/modificateurs de la langue n'aimaient pas l'exigence de taper suffisamment pour ne pas mettre d'effort pour permettre la possibilité de spécifier le type. Je ne compte donc pas que cela se produise, même si cela peut sembler très logique. De ma brève recherche, il semble que python ne permet pas de spécifier les types. Mais vous pouvez vérifier le type en utilisant isinstance http://docs.python.org/library/functions.html#isinstance
Maintenant, pour des raisons personnelles, je dis pourquoi pas. Si les mainteneurs/créateurs de la langue en question peuvent le faire d'une manière qui ne compromet pas l'efficacité/l'intention réelle de la langue, ils devraient au moins permettre à quelqu'un qui est intéressé d'ajouter la capacité de spécifier le type de le faire.
Vous pouvez mélanger le typage statique et dynamique; il y a beaucoup de langues qui font cela. Dans le cas le plus simple, vous auriez une hiérarchie de classes comprenant tous les types racine à object
(en utilisant la terminologie Python). Chaque variable "non typée" aurait le type object
afin qu'elle puisse contenir n'importe quelle variable. D'autres variables peuvent avoir des types plus spécifiques, tels que int
. Une implémentation devrait toujours effectuer une vérification de type à l'exécution, mais elle pourrait optimiser les contrôles où les types peuvent être déterminés au moment de la compilation.
Cython fait quelque chose similaire, sauf qu'il déleste la partie de typage statique à un compilateur C:
def foo():
cdef int i = 0 # statically typed variable
ham = "spam" # dynamically typed variable
while i < 10:
print(ham)
i += 1
- 1. types génériques, compilateur et langages dynamiques
- 2. Lien dynamique/typage dynamique dans objectif-c
- 3. Véritable typage dynamique de vecteur
- 4. Typage semi-dynamique Dapper?
- 5. Comparer les types de typage Python
- 6. Types de pointeurs de typage
- 7. typage fort typage - spécification des types de valeurs d'objet
- 8. Type inféré et typage dynamique
- 9. Typage dynamique JavaScript int/float
- 10. Types imprévisibles vs sous-typage simple
- 11. Typage d'occurrences avec types d'union polymorphes
- 12. Sous-typage entre types de fonctions
- 13. Typage une classe avec des types génériques
- 14. Le type de typage s'applique sur les types de promesses
- 15. Interface et dactylographie dans des langages dynamiques
- 16. Typage dans les tableaux
- 17. Types de typage par type spécifiques à la force
- 18. Implémentations de liaison dynamique dans les langages OO
- 19. Quels sont les exemples où le typage dynamique est préféré au typage statique?
- 20. Question sur le typage dynamique en Java
- 21. définition d'une variable dans les langages de type dynamique
- 22. Mise en œuvre transparente d'une forme particulière de typage dynamique
- 23. génération de code avro/typage dynamique
- 24. Typage dynamique de la variable foreach
- 25. Typage dynamique, Objective-C, comment ça marche?
- 26. Relations polymorphes JPA, typage statique et dynamique
- 27. Comment gérer les types de paramètres incorrects dans les langages dynamiques?
- 28. Quand devrais-je utiliser null dans les langages dactylographiés dynamiquement?
- 29. Comment l'interpréteur Python fonctionne-t-il en typage dynamique?
- 30. typage dynamique ou génériques dans Oracle PL/SQL
Votre question initiale était close. Vous aurez besoin de faire plus d'un changement mineur de formulation pour le demander à nouveau. – Abizern
Des tonnes de langues le font: typage progressif, inférence de type pour les langues dynamiquement typées, les contrats, vous l'appelez. –
Quel est le problème avec la façon dont la question est posée? – akonsu