Typüberprüfung: Ein iterierbarer Typ, der keine Zeichenfolge ist

Betrachten Sie zur besseren Erklärung diese einfache Funktion zur Typprüfung:

from collections import Iterable
def typecheck(obj):
    return not isinstance(obj, str) and isinstance(obj, Iterable)

Obobj ist ein anderer iterierbarer Typ alsstres kehrt zurückTrue. jedoch, wennobj ist einstr oder ein nicht iterierbarer Typ wird zurückgegebenFalse.

Gibt es eine Möglichkeit, die Typprüfung effizienter durchzuführen? Ich meine, es scheint irgendwie überflüssig, den Typ zu überprüfenobj einmal um zu sehen, ob es nicht einstr und dann überprüfe esnochmal um zu sehen, ob es iterabel ist.

Ich dachte darüber nach, jeden anderen iterablen Typ aufzulistenstr so was:

return isinstance(obj, (list, tuple, dict,...))

Das Problem ist jedoch, dass bei diesem Ansatz keine anderen iterierbaren Typen fehlen, die nicht explizit aufgeführt sind.

Also ... gibt es etwas Besseres oder ist der Ansatz, den ich in der Funktion angegeben habe, der effizienteste?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage