Seite 1 von 1

OOP: instance of

Verfasst: Dienstag 4. Mai 2004, 10:54
von rayo
Hi

ich weiss leider nicht mehr wie man überprüft ob ein Object irgendwann mal von einer Klasse abgeleitet worden ist.

In einer anderen Sprache heisst es InstanceOf.

Bsp:

Code: Alles auswählen

class A:
  ...
class B(A)
  ...

test = B()

if test instanceof A:
   print 'true'
bei diesem Bsp. soll true ausgegeben werden. Wie kann ich sowas überprüfen?

gruss

Verfasst: Dienstag 4. Mai 2004, 11:34
von fs111

Code: Alles auswählen

Python Library Documentation: built-in function issubclass in __builtin__

__builtin__.issubclass = issubclass(...)
    issubclass(C, B) -> Boolean

    Return whether class C is a subclass (i.e., a derived class) of class B.
HTH

fs111

Re: OOP: instance of

Verfasst: Dienstag 4. Mai 2004, 11:59
von joerg
Du suchst 'isinstance()', mit 'print isinstance.__doc__', kriegst Du Hilfe zur Verwendung.

Jörg

Verfasst: Dienstag 4. Mai 2004, 12:08
von rayo
hi

genau isinstance hab ich gesucht :)

danke euch beiden

gruss

Verfasst: Dienstag 4. Mai 2004, 17:46
von Milan
Hi. Also zum testen ob B eine Basisklasse von A ist, nimmst du issubclass. Zum testen, ob test (==B()) eine Instanz von einer beliebigen Basisklasse von B (B inklusive) ist, nimmst du isinstance. War mir oben ein wenig zu unsauber formuliert, für alle die die den Thread mal per Suche finden...

Milan