Vergleich der Vererbung mit mehreren Klassen?

8

Ich möchte überprüfen, ob ein Objekt eine Instanz irgendeiner Klasse in einer Liste / Gruppe von Klassen ist, aber ich kann nicht finden, ob es sogar eine pythonische Art gibt, dies zu tun, ohne

zu machen %Vor%

Ich meine, Klasse für Klasse vergleichen.

Es wäre wahrscheinlicher, eine Funktion wie isinstance zu verwenden, die eine Anzahl von Klassen erhalten würde, gegen die verglichen werden soll, falls diese überhaupt existiert.

Vielen Dank im Voraus für Ihre Hilfe !! :)

    
Gerard 05.05.2012, 01:43
quelle

3 Antworten

25

Sie können ein Tupel von Klassen als zweites Argument an isinstance übergeben.

%Vor%

Nach oben schauen, hätte der Docstring Ihnen das auch gesagt;)

%Vor%     
Glider 05.05.2012, 01:45
quelle
2

isinstance(obj, (Class1, Class2, ..., ClassN)) oder isinstance(obj, BaseClass) , wenn sie einen gemeinsamen Vorfahren haben.

Das heißt, Sie sollten zweimal überlegen, bevor Sie dies verwenden. Explizite Typprüfungen wie diese können die Generizität des Codes verletzen, also sollten Sie besser einen Grund haben, die Ente weggeben zu lassen.

    
Cat Plus Plus 05.05.2012 01:47
quelle
-1

Eine andere Möglichkeit, dies zu tun, jedoch ohne Unterklassenprüfung:

%Vor%

Hinweis. Wahrscheinlich ist dies nur für die Berücksichtigung, nicht für den praktischen Gebrauch.

    
yentsun 05.05.2012 01:55
quelle

Tags und Links