print isinstance(s, str) # 用来判断是否为一般字符串
print isinstance(s, basestring)
print isinstance(s, unicode) # 用来判断是否为unicode
结果:
False
True
True
True
True
False
总结:
basestring是str和unicode的超类。
查看内建函数:
class basestring(object)
class str(basestring)
class unicode(basestring)
所以str和unicode是不同的,判断时需要注意字符串类型。
查看资料:
http://appofis.iteye.com/blog/443206
python的str,unicode对象的encode和decode方法
python中的str对象其实就是"8-bit string" ,字节字符串,本质上类似java中的byte[]。
而python中的unicode对象应该才是等同于java中的String对象,或本质上是java的char[]。
http://www.cnblogs.com/dkblog/archive/2011/03/02/1980644.html
isinstance(s, str) 用来判断是否为一般字符串
isinstance(s, unicode) 用来判断是否为unicode
http://www.cnblogs.com/oneday/archive/2012/08/16/2643039.html
说明:basestring是str和unicode的超类(父类),也是抽象类,因此不能被调用和实例化,但可以被用来判断一个对象是否为str或者unicode的实例,isinstance(obj, basestring)等价于isinstance(obj, (str, unicode));