hiasl hat geschrieben:BlackJack hat geschrieben:
Das mit den Unter- und Obermengen ist nett, aber das unpythonische ist die Verwendung von `isinstance()`. Das muss ja wohl irgendwo verwendet werden um diesen ganz bestimmten Typ zu testen, ansonsten gäb's das Problem nicht und man könnte auch den quakenden Hund benutzen.
Der Punkt nicht. Ich habe nie behauptet, dass ich "instanceof" _verwende_, sondern dass es _möglich_ sein soll.
Also wird es doch irgendwo verwendet, wäre dem nicht so, löst Du ein Problem das es nicht gibt.
Wieso bietet Python eigentlich "unpythonische" Funktionen an? Kennen die Entwickler nicht die idiomatische Verwendung ihrer Sprache?
Och bitte. Man kann so ziemlich jedes Feature zweckentfremden. "Pythonische" Verwendung von Instanzmethoden, die zur Laufzeit einem Objekt hinzugefügt werden, wäre zum Beispiel einem Hund, der nicht quaken kann, eine solche Methode dynamisch zu verpassen, damit er irgendwo als Ente durchgeht und nicht damit dort dann ein `instanceof(obj, Ente)` funktioniert.
Idiomatische Verwendung bedeutet ja gerade, dass es nicht von der Sprache so erzwungen wird, sondern dass etwas in der Regel so formuliert wird, weil es der Philosophie der Sprache entspricht. Die meisten Sachen kann man auch gar nicht erzwingen, weil sie formal gar nicht erfasst werden. Selbst bei statischeren Sprachen geht das nicht.