python3新增的byte型別

2021-08-15 02:59:50 字數 683 閱讀 7777

在python2中位元組型別同字元型別區分不大,但是在python3中最重要的特性是對文字和二進位制資料做了更加清晰的區分,文字總是unicode,由字元型別表示,而二進位制資料則由byte型別表示,python3不會以任意隱式方式混用位元組型和字元型,也因此在python3中不能拼接字串和位元組包(python2中可以,會自動進行轉換),也不能在位元組包中搜尋字串,也不能將字串傳入引數為位元組包的函式。

需要注意的是,在網路資料傳輸過程中,python2可以通過字串(string)方式傳輸,但是python3只能通過二進位制(bytes)方式來傳輸,因此要對傳輸文字進行轉換。

例如下面的例子:

>>>'你好'.encode('utf-8')

b'\xe4\xbd\xa0\xe5\xa5\xbd'

>>> b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8')

'你好'

>>>'你好'.encode('utf-8').decode('utf-8')

'你好'

其中1.encode()和decode()方法中預設了編碼為utf-8,但是為了避免錯誤,最好將編碼加上。

2.encode()出來的結果的「b」代表二進位制(binary)

python3元類 python3元類的呼叫順序

在嘗試理解元類建立類例項的順序時,我感到困惑.根據該圖 source 我鍵入以下 進行驗證.class meta type def call self print meta call super meta,self call def new mcs,name,bases,attrs,kwargs p...

python3 中 byte 和string轉換

python3 中 byte 和string轉換 舉例,我要將byte轉換為string型別 一開始我是直接使用 a str b 但是發現結果並非我想要的那種,後來在網上發現了一篇寫的很好的文章 python 3中最重要的新特性可能就是將文字 text 和二進位制資料做了更清晰的區分。文字總是用un...

python3 類的繼承

基本語法 class derivedclassname baseclassname1 1 需要注意圓括號中父級類的順序,若是父級類中有相同的方法名,而在子類使用時未指定,python從左至右搜尋 即方法在子類中未找到時,從左到右查詢父級類中是否包含方法。示例 class a object pass ...