gpt4 book ai didi

python - isinstance ('aaa' , basestring) 和 isinstance ('aaa' , str) 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 12:24:20 27 4
gpt4 key购买 nike

a='aaaa'
print isinstance(a, basestring)#true
print isinstance(a, str)#true

最佳答案

在 3.0 之前的 Python 版本中,有两种字符串“纯字符串”和“Unicode 字符串”。纯字符串 (str) 不能表示拉丁字母表之外的字符(为简单起见,忽略代码页的细节)。 Unicode 字符串 (unicode) 可以表示任何字母表中的字符,包括一些虚构的字符,如克林贡语。

那么为什么有两种字符串呢,难道只有 Unicode 会更好,因为它可以涵盖所有情况吗?好吧,最好只有 Unicode,但 Python 是在 Unicode 成为表示字符串的首选方法之前创建的。在有很多用户的语言中转换字符串类型需要时间,在 Python 3.0 中,最终所有字符串都是 Unicode。

3.0之前的Python字符串的继承层次是:

          object
|
|
basestring
/ \
/ \
str unicode
在 Python 2.3 中引入的

'basestring' 可以被认为是朝着字符串统一方向迈出的一步,因为它可以用来检查对象是 str 还是 unicode 的实例

>>> string1 = "I am a plain string"
>>> string2 = u"I am a unicode string"
>>> isinstance(string1, str)
True
>>> isinstance(string2, str)
False
>>> isinstance(string1, unicode)
False
>>> isinstance(string2, unicode)
True
>>> isinstance(string1, basestring)
True
>>> isinstance(string2, basestring)
True

关于python - isinstance ('aaa' , basestring) 和 isinstance ('aaa' , str) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1979004/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com