2015-11-14 150 views
1

我是一名python新手,對於b''''的區別我有點困惑。python中b''和''有什麼區別?

我認爲它們都是空的,但b'' == ''回報False。但爲什麼?有人可以向我解釋這個在內存

它們在內存方面是否相同,而且類型不同會導致不平等?

回答

2

b""創建bytes對象而""創建str對象。引述documentation

字節的文字總是與'b''B'前綴;他們生成bytes類型的 實例,而不是str類型。它們可能只有 包含ASCII字符;數值爲128或更大的字節 必須用轉義表示。

在Python3中,不同類型的對象(除了不同的數字類型)決不會相等。

順便說一句,該對象的內存大小不同,以及:

>>> from sys import getsizeof 
>>> getsizeof(b"") 
33 
>>> getsizeof("") 
49 
0

在python2中基本沒有區別。在python3中,第一個是一串字節或一個字節,另一個是普通字符串。

2

(這是python3):你的例子之一是該類型的bytes;另一個str。他們永遠不會被認爲是平等的。

print(type(b'')) # -> <class 'bytes'> 
print(type('')) # -> <class 'str'> 
相關問題