如何在Python中确定数据类型?

TIM*_*MEX 2 python

astring('a','tuple')

如何确定"x"是元组还是字符串?

jfs*_*jfs 8

if isinstance(x, basestring):
   # a string
else:
   try: it = iter(x)
   except TypeError:
       # not an iterable
   else:
       # iterable (tuple, list, etc)
Run Code Online (Sandbox Code Playgroud)

@Alex Martelli的回答详细描述了为什么在使用Python中的类型时应该更喜欢上述样式(感谢@Mike Hordecki的链接).

  • +1,`isinstance(x,str)`和`type(x)是str`都是错误的,因为它们不处理unicode.另外,`isinstance()`比`type()`更受欢迎,因为它处理子类. (3认同)

Mik*_*cki 5

isinstance(x, str)
isinstance(x, tuple)
Run Code Online (Sandbox Code Playgroud)

一般来说:

isinstance(variable, type)
Run Code Online (Sandbox Code Playgroud)

检查是否variabletype(或其子类型)(docs)的实例.

PS.不要忘记字符串也可以是unicode(isinstance(x, unicode)在这种情况下)(或者isinstance(x, basestring)(谢谢,JF Sebastian!),它检查两者strunicode).