Warum geben Sie(classInstance) ist wieder in 'Instanz'?

Habe ich eine Methode, die einen parameter akzeptiert, der kann von verschiedenen Arten, und hat eine Sache zu machen oder andere, je nach Typ, aber wenn ich den Typ überprüfen, sagte der parameter, die ich nicht bekommen, der "echte" Typ, ich bekomme immer <type 'instance'>, und das ist messing mit meinem Vergleiche.

Ich habe so etwas wie:

from classes import Class1
from classes import Class2
# Both classes are declared in the same file.
# I don't know if that can be a problem         #
# ... #
def foo(parameter)
    if (type(parameter) == type(Class1()):
    # ... #
    elif (type(parameter) == type(Class2()):
    # ... #

Und als type(parameter) zurück <type 'instance'> und type(Class1()) ist <type 'instance'> als gut, es stellt sich heraus, dass selbst, wenn der parameter ist eine Instanz von Class2, es geht in den ersten Vergleich...

Übrigens str(parameter.__class__) richtig zeigt classes.Class1 . Ich glaube, ich könnte immer verwenden, aber ich würde gerne verstehen, was Los ist... habe ich gemacht Zehntel Vergleiche wie dieser, und alle von Ihnen funktionierte einwandfrei...

Danke!!!! 🙂

InformationsquelleAutor BorrajaX | 2010-06-24
Schreibe einen Kommentar