python中str和basestring

for s in [u'asd', 'asd']:
    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));


你可能感兴趣的:(小技巧,python学习)