Als «duck-typing» getaggte Fragen

4
Python-Vergebung vs. Erlaubnis und Entenschreiben
In Python höre ich oft, dass es besser ist, "um Verzeihung zu bitten" (Ausnahmefang), als "um Erlaubnis zu bitten" (Typ- / Zustandsprüfung). In Bezug auf die Durchsetzung der Enten-Typisierung in Python ist dies try: x = foo.bar except AttributeError: pass else: do(x) besser oder schlechter als if hasattr(foo, "bar"): do(foo.bar) …


4
Warum verwenden viele dynamische Programmiersprachen, die vom Typ Ente stammen, einen klassenbasierten Ansatz anstelle von prototypbasiertem OOP?
Da viele dynamische Programmiersprachen die Funktion " Duck Typing" haben und außerdem jederzeit Klassen- oder Instanzmethoden (wie Ruby und Python ) öffnen und ändern können ,… Frage 1) Was ist für eine Klasse in einer dynamischen Sprache erforderlich? Warum ist die Sprache so konzipiert, dass eine Klasse als eine Art …

6
Gibt Ente eine Teilmenge des Polymorphismus ein?
Aus dem Polymorphismus auf Wikipedia In der Informatik ist Polymorphismus eine Programmiersprache, mit der Werte verschiedener Datentypen über eine einheitliche Schnittstelle verarbeitet werden können. Von der Ente, die auf Wikipedia schreibt In der Computerprogrammierung mit objektorientierten Programmiersprachen ist die Ententypisierung ein dynamischer Typisierungsstil, bei dem der aktuelle Satz von Methoden …

3
Wie verwendet man die Enten-Eingabe in Javascript, ohne immer nach Eigenschaften und Methoden zu suchen?
Ich weiß, dass Javascript Enten-Typisierung verwendet, und zuerst dachte ich, dies würde den Polymorphismus im Vergleich zu stark typisierten Sprachen wie C # vereinfachen. Aber jetzt sind meine Funktionen, die Argumente annehmen, übersät mit Dingen wie: if(myObj.hasSomeProperty()) oder if(myObj.hasSomeMethod()) oder if(isNumber(myParam)) etc. Das ist wirklich hässlich für mich. Ich komme …

1
Ententypisierung, Datenvalidierung und durchsetzungsfähige Programmierung in Python
Über das Tippen von Enten : Die Typisierung von Enten wird dadurch unterstützt, dass gewohnheitsmäßig nicht auf die Art der Argumente in Methoden- und Funktionskörpern geprüft wird. Dabei wird auf Dokumentation, klaren Code und Tests zurückgegriffen, um die korrekte Verwendung sicherzustellen. Informationen zur Argumentvalidierung (EAFP: Es ist einfacher, um Vergebung …

1
Implizite oder explizite Schnittstellen
Ich glaube, ich verstehe die tatsächlichen Einschränkungen des Polymorphismus zur Kompilierungszeit und des Laufzeitpolymorphismus. Aber was sind die konzeptionellen Unterschiede zwischen expliziten Schnittstellen (Laufzeit - Polymorphismus. Dh virtuelle Funktionen und Zeiger / Referenzen) und implizite Schnittstellen (Kompilierung-Polymorphismus. Dh. Vorlagen) . Ich bin der Meinung, dass zwei Objekte, die dieselbe explizite …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.