2009-07-30 3 views
1

Dites que vous faites une calculatrice dans un langage dynamique (Python etc ...) et vous avez une méthode add.Dactylographie - Qu'en est-il lorsque vous avez besoin d'un type de béton?

def Add(x, y) 
    print x + y 

Maintenant, si vous deviez passer quoi que ce soit, mais un certain nombre qui serait mal, alors vous avez besoin de vérification de type de données.

Est-ce que Duck taper sur les objets par opposition aux paramètres comme l'exemple ci-dessus?

Quelqu'un pourrait-il expliquer davantage?

Modifier

par des objets que je veux dire:

Person.Quack() 
Duck.Quack() 

Sans se soucier de ce qui passe dans les méthodes.

Répondre

2

Le typage de canard ne tient pas compte des objets avec lesquels vous travaillez tant qu'ils supportent les opérations nécessaires. Donc, si + est une concaténation de chaîne, alors passer des chaînes à Add serait bien. Si les dates supportent l'opération +, les dates de passage seront également correctes.

+0

+1 L'exemple de méthode Add fonctionnera bien pour les chaînes. En ce qui concerne '+', beaucoup de types fonctionneront. –

+0

C'est ce que j'ai lu/compris ce qui se passe quand vous ne voulez pas qu'ils utilisent une date. Dans le cas d'une calculatrice, vous seriez obligé de vérifier les types de données. Annulant ainsi la frappe de canard. – Finglas

+0

@Dockers: Pourquoi vérifier les types de données? Pourquoi la calculatrice ne peut-elle pas fonctionner avec des dates et des chaînes? –

Questions connexes