2009-05-08 6 views
1

Duplizieren:What’s the canonical way to check for type in python?Wie überprüfe ich in IronPython auf Typgleichheit (is operator oder x.GetType() == typeof (xType))?

Wie prüfe ich für Art Gleichheit in Ironpython?

brauche ich das Äquivalent des folgenden C# -Code in Ironpython:

if (x.GetType() == typeof(xType)) 

oder

if (x is xType) 
+0

Ich habe zu schließen: "exakte Kopie". Bitte lesen Sie http://stackoverflow.com/questions/152580/whats-the-canonical-way-to-check-for-type-in-python. –

+0

Ehhh ... nicht genau ein Duplikat. Ich habe wirklich nicht nach dem pythonischen Weg gesucht. Ich war auf der Suche nach der IronPythic Art, es zu tun - das heißt, mit dem .NET-Framework (oder wie das is-Schlüsselwort in IP zu verwenden ist). –

+0

Wenn Sie eine pythonische Art der Durchführung suchen, tun Sie es nicht ! Typprüfung ist sehr antipythonisch. Wenn Sie einen Typ erhalten, der nicht funktioniert, wird der Code explodieren und der Anrufer die Stücke abholen. – EvilRyry

Antwort

3
from System import * 
if x.GetType() == Type.GetType(xType): 
0

Say C ist eine statische Klasse, nicht voll qualifiziert, sondern importiert in die Eisen Python Skript x ist eine Instanz von C Und ABC ist der voll qualifizierte Name

Warum funktionieren diese nicht?

x.GetType() == Type.GetType("A.B.C") 

ODER

x is Type.GetType("A.B.C") 

ODER

x is C 

ODER

x.GetType() == Type.GetType(C) 
+0

Ich endete dabei: x.GetType(). Name == "C" – user37468

Verwandte Themen