我是一个蟒蛇新手,我对b''
和''
的区别感到有些困惑。
我认为它们都是空的,b'' == ''
会返回False
。但为什么?有人可以用记忆来解释这个吗?
内存中的内容是否相同,类型不同导致不平等?
答案 0 :(得分:2)
(这适用于python3):您的一个示例属于bytes
类型;另一个str
。他们永远不会被认为是平等的。
print(type(b'')) # -> <class 'bytes'>
print(type('')) # -> <class 'str'>
答案 1 :(得分:2)
b""
创建bytes
个对象,而""
创建str
个对象。引用documentation:
字节文字始终以
'b'
或'B'
为前缀;他们生产了一个bytes
类型的实例,而不是str
类型的实例。他们可能只是 包含ASCII字符;数字值为128或更大的字节 必须用逃避来表达。
在Python3中,不同类型的对象(不同的数字类型除外)永远不会相等。
BTW,对象的内存大小也不同:>>> from sys import getsizeof
>>> getsizeof(b"")
33
>>> getsizeof("")
49
答案 2 :(得分:0)
在python2中基本没有区别。在python3中,第一个是字节串或字节字符串,第二个是普通字符串。