Wie kann ich in Python eine Typinformation einholen? Wie kann ich in Abhängigkeit von dieser Typinformation bspw. einer Matrix abfragen?
bspw.
if type(m)==matrix:
do something
Typinformation abfragen
-
BlackJack
@Brando: Typtests macht man in der Regel nicht. Falls man das doch macht (obwohl man das ja eigentlich nicht macht) gibt es `isinstance()`. Wofür brauchst Du das denn?
@Brando: Ich benutze die folgende Abfrage
eckhard
Code: Alles auswählen
if type(1) == int:
print('Integer type')
Der Typ ist einfach die jeweilige Klasse. Falls es noch um dein Vorhaben mit Sympy geht, dann also:
Code: Alles auswählen
if isinstance(m, sympy.Matrix):
# ...Das liefert den exakten Typ. Beim Programmieren mit Python will man aber auch abgeleitete Typen zulassen. Für die würde dein Code nicht erwartungsgemäß funktionieren. Zumal es eigentlich auch ``type(x) is int`` heißen müsste, da hier tatsächlich die Klasse zurückgeliefert wird und eine bestimmte Klasse nur genau einmal existieren kann. ``a == b`` fällt aber quasi auf ``a is b`` zurück, wenn nichts anderes definiert wurde. Daher funktioniert das.eckhard hat geschrieben:@Brando: Ich benutze die folgende AbfrageCode: Alles auswählen
if type(1) == int: print('Integer type')
Auch wenn es häufig darauf hinausläuft, dass man tatsächlich nur Objekte vom angegebenen Typen benutzt, so hat sich dennoch die Nutzung von `isinstance()` eingebürgert. Die Nutzung habe ich ja in meinem vorherigen Beitrag gezeigt.
