我是一名python新手,對於b''
和''
的區別我有點困惑。python中b''和''有什麼區別?
我認爲它們都是空的,但b'' == ''
回報False
。但爲什麼?有人可以向我解釋這個在內存?
它們在內存方面是否相同,而且類型不同會導致不平等?
我是一名python新手,對於b''
和''
的區別我有點困惑。python中b''和''有什麼區別?
我認爲它們都是空的,但b'' == ''
回報False
。但爲什麼?有人可以向我解釋這個在內存?
它們在內存方面是否相同,而且類型不同會導致不平等?
b""
創建bytes
對象而""
創建str
對象。引述documentation:
字節的文字總是與
'b'
或'B'
前綴;他們生成bytes
類型的 實例,而不是str
類型。它們可能只有 包含ASCII字符;數值爲128或更大的字節 必須用轉義表示。
在Python3中,不同類型的對象(除了不同的數字類型)決不會相等。
順便說一句,該對象的內存大小不同,以及:
>>> from sys import getsizeof
>>> getsizeof(b"")
33
>>> getsizeof("")
49
在python2中基本沒有區別。在python3中,第一個是一串字節或一個字節,另一個是普通字符串。
(這是python3):你的例子之一是該類型的bytes
;另一個str
。他們永遠不會被認爲是平等的。
print(type(b'')) # -> <class 'bytes'>
print(type('')) # -> <class 'str'>