OOP: instance of

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

OOP: instance of

Beitragvon rayo » Dienstag 4. Mai 2004, 10:54

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
Benutzeravatar
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Beitragvon fs111 » Dienstag 4. Mai 2004, 11:34

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
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

Re: OOP: instance of

Beitragvon joerg » Dienstag 4. Mai 2004, 11:59

Du suchst 'isinstance()', mit 'print isinstance.__doc__', kriegst Du Hilfe zur Verwendung.

Jörg
"Sie sind nicht berechtigt, unrechtmäßige Kopien dieses Datenträgers zu erstellen." - Microsoft-Weisheit auf einer CD von MS-VisualC++-6.0
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Beitragvon rayo » Dienstag 4. Mai 2004, 12:08

hi

genau isinstance hab ich gesucht :)

danke euch beiden

gruss
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Dienstag 4. Mai 2004, 17:46

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

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], de_tom