Wie prüft man, ob Typ einer Variable String ist?

Gibt es eine Möglichkeit zu überprüfen, ob die Art einer Variable in Python ist String .. wie

isinstance(x,int); 

Für ganzzahlige Werte?

8 Solutions collect form web for “Wie prüft man, ob Typ einer Variable String ist?”

In Python 2.x würdest du tun

 isinstance(s, basestring) 

basestring ist die abstrakte basestring von str und unicode . Es kann verwendet werden, um zu testen, ob ein Objekt eine Instanz von str oder unicode .

Äquivalentcode:

 isinstance(s, (str, unicode)) 

In Python 3.x wäre es so

 isinstance(s, str) 

(Basestring ist in Python 3 nicht definiert)

Ich weiß, das ist ein altes Thema, aber das erste, das auf Google gezeigt wird und angesichts der Tatsache, dass ich keine der Antworten befriedigen finde, werde ich das hier für zukünftige Referenz verlassen:

Sechs ist eine Python 2 und 3 Kompatibilitätsbibliothek, die dieses Thema bereits abdeckt. Sie können dann so etwas machen:

 import six if isinstance(value, six.string_types): pass # It's a string !! 

Überprüfen Sie den Code, das ist, was Sie finden:

 PY3 = sys.version_info[0] == 3 if PY3: string_types = str, else: string_types = basestring, 

In Python 3.x oder Python 2.7.6

 if type(x) == str: 

Das Typmodul existiert auch, wenn Sie mehr als Ints und Strings überprüfen. http://docs.python.org/library/types.html

Bearbeiten auf der Grundlage besserer Antwort unten. Gehen Sie etwa 3 Antworten und finden Sie heraus, über die Kühle von basestring.

Alte Antwort: Achten Sie auf Unicode-Strings, die Sie von mehreren Orten, einschließlich aller COM-Anrufe in Windows erhalten können.

 if isinstance(target, str) or isinstance(target, unicode): 

Viele gute Vorschläge, die von anderen hier zur Verfügung gestellt werden, aber ich sehe keine gute plattformübergreifende Zusammenfassung. Das folgende sollte ein guter Tropfen für jedes Python Programm sein:

 def isstring(s): # if we use Python 3 if (sys.version_info[0] >= 3): return isinstance(s, str) # we use Python 2 return isinstance(s, basestring) 

In dieser Funktion verwenden wir isinstance(object, classinfo) zu sehen, ob unsere Eingabe ein str in Python 3 oder ein basestring in Python 2 ist.

Da basestring nicht in Python3 definiert ist, könnte dieser kleine Trick helfen, den Code kompatibel zu machen:

 try: # check whether python knows about 'basestring' basestring except NameError: # no, it doesn't (it's Python3); use 'str' instead basestring=str 

Danach können Sie den folgenden Test auf Python2 und Python3 ausführen

 isinstance(myvar, basestring) 

Auch ich möchte bemerken, dass, wenn Sie überprüfen möchten, ob der Typ einer Variablen eine bestimmte Art ist, können Sie den Typ der Variablen mit dem Typ eines bekannten Objekts vergleichen.

Für String können Sie dies verwenden

 type(s) == type('') 
  • Lokale Variable referenziert vor Zuweisung in Python, wenn ich es global gesetzt
  • Wie passiere ich Variablen in Python
  • Verwenden Sie eine Schleife in Python, um Variablen zu benennen
  • Python-Wörterbuch, das als Eingabe in eine Funktion übergeben wird, wirkt wie eine globale in dieser Funktion und nicht auf eine lokale
  • Wie benutzt man eine Variable in einem regulären Ausdruck?
  • Wie zähle ich eindeutige Werte in einem Array in Python?
  • Wie Verweise auf Variablen in Python aufgelöst werden
  • Python: wie zu identifizieren, ob eine Variable ein Array oder ein Skalar ist
  • Unterschied zwischen a - = b und a = a - b in Python
  • Underscore _ als Variablenname in Python [Duplikat]
  • Ändern von Variablennamen mit Python für Loops
  • Python ist die beste Programmiersprache der Welt.