Seite 1 von 1

Objekttyp überprüfen in Python

Verfasst: Sonntag 3. Juni 2012, 22:38
von Dreamworx
Hey ihr,

da ich normalerweise mit Java arbeite habe ich nun ein kleines Problem in Python.


Und zwar möchte ich den Typ eines Objekts "testFahrzeug", welches von der Klasse Auto sein kann abfragen.

Mit

Code: Alles auswählen

print(type(testFahrzeug))
bekomme ich folgende Ausgabe:

Code: Alles auswählen

<class 'Auto'>
Also habe ich es wie folgt versucht:

Code: Alles auswählen

if type(testFahrzeug) is 'Auto':
...
was leider nicht funktioniert - wo ist hier mein Denkfehler, könnt ihr mir vielleicht weiterhelfen?


Vielen Dank schoneinmal, Grüße

Steve

Re: Objekttyp überprüfen in Python

Verfasst: Sonntag 3. Juni 2012, 22:51
von Dav1d
Das macht man mit `isinstance`.

Code: Alles auswählen

isinstance(test_fahrzeug, Auto)

Re: Objekttyp überprüfen in Python

Verfasst: Sonntag 3. Juni 2012, 23:00
von deets
*Warum* willst du das? Es gibt natuerlich gute Anwendungsfaelle dafuer... aber eher selten, und das du eigentlich Java-Programmierer bist laesst mich vermuten, dass du hier etwas nicht so machst, wie man es in Python tun wuerde.

Re: Objekttyp überprüfen in Python

Verfasst: Sonntag 3. Juni 2012, 23:01
von Dreamworx
Wow - vielen Dank für die schnelle Hilfe.

Ich hatte es jetzt mit Strings gelöst - aber die direkte Typüberprüfung ist glaub etwas schöner 8) .

Re: Objekttyp überprüfen in Python

Verfasst: Sonntag 3. Juni 2012, 23:06
von Dreamworx
deets hat geschrieben:*Warum* willst du das? Es gibt natuerlich gute Anwendungsfaelle dafuer... aber eher selten, und das du eigentlich Java-Programmierer bist laesst mich vermuten, dass du hier etwas nicht so machst, wie man es in Python tun wuerde.
Ich habe im Prinzip ein Teilmodul gestellt bekommen, wo eben eine Klasse Auto existiert die wiederum von einer anderen Klasse Fahrzeug abgeleitet wird.

Nun bekomme ich Objekte als Rückgabe auf bestimmte Methodenaufrufe von dem existierenden Teilmodul, die eben jedes beliebige Fahrzeug sein können. Ich muss aber wissen, welches konkrete Fahrzeug (z.b. eben Auto) diese sind um dann entsprechend der Kategorisierung weitere Schritte vorzunehmen.


LG

Steve

Re: Objekttyp überprüfen in Python

Verfasst: Sonntag 3. Juni 2012, 23:10
von deets
Warum kann das entsprechende Objekt das nicht selbst tun? Sollte es zumindest - den dann ist dein Code flexibler, falls mal ein Objekt "Kabinenroller" daherkommt, welches genauso wie ein Auto behandelt werden muss, auch wenn's von Motorrad erbt. Oder so.