我有以下测试:
# -*- 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
) 的更多信息? - 如何以十六进制转储字节?