我有以下测试:
# -*- coding: utf-8 -*-
def test_literals():
test_cases = [
'aaaaa',
'ááááá',
u'aaaaa',
u'ááááá',
]
FORMAT = '%-20s -> %2d %s'
for data in test_cases :
print FORMAT % (data, len(data), type(data))
test_literals()
给出了:
aaaaa -> 5 <type 'str'>
ááááá -> 10 <type 'str'>
aaaaa -> 5 <type 'unicode'>
ááááá -> 5 <type 'unicode'>
我对'ááááá'
感到惊讶。这是什么字面意思?它不是unicode,因为它没有u
前缀(类型显示str
),但它也不是正常的ascii字符串。我想知道:
basestring
对象(unicode / str
)的更多信息?答案 0 :(得分:1)
总而言之,如果这让您感到困惑,它可能会激励您切换到Python 3,而这一切都更容易。