Seite 1 von 1

Klassenname einer Variable herausfinden?

Verfasst: Samstag 16. April 2005, 22:19
von Blue-Tiger
Hi there!
wie kann ich den Klassennamen einer Variable herausfinden? D.h. wenn ich eine Variable vom Typ "MyClass" habe, dann moecht ich irgendwie eben genau dieses "MyClass" herausbekommen....

Ich dachte erst, dafuer gibts ja "type".... aber na ja:

Code: Alles auswählen

i = 5
>>> type(i)  # funktioniert
<type 'int'>

import Hash
foo = Hash.Hash1(13)
>>> type(foo)
<type 'instance'>  # funktioniert leider nicht... foo ist ein "Hash1"

sorry, ich weiss ich drueck mich nicht grad klar aus
:oops:

Verfasst: Sonntag 17. April 2005, 01:09
von BlackJack
Den Klassennamen einer Variablen kann man nicht herausfinden. Aber den Namen der Klasse des Objektes, das an einen Namen gebunden ist:

Code: Alles auswählen

In [24]: class Spam:
   .24.:   pass
   .24.:

In [25]: a = Spam()

In [26]: a.__class__.__name__
Out[26]: 'Spam'

Verfasst: Mittwoch 20. April 2005, 16:37
von Blue-Tiger
thx, genau das hab ich gesucht :)

aber was ist der Unterschied zwischen den Klassennamen einer Variablen und dem Namen der Klasse des Objektes?

Verfasst: Mittwoch 20. April 2005, 22:08
von BlackJack
`a` ist die Variable bzw. ein Variablenname. Und ein Name hat keine Klasse. Nur das Objekt an den dieser Name gebunden ist hat eine.