Pyhton2.x 和Python3.x

1、 異常處理和pint區別html

       try:
           ...except Exception,e:   # 2.x,3.x 須要把逗號(,)變爲as.
           print e.message    # 2.x,3.須要吧print內容加上括號(e).          

 

2、http請求node

Pyhton2.x 中的urllib2工具包,在Python3中分拆成了urllib.request和urllib.error兩個包。python

 

3、其餘web

python 2.x表達式  "\r\n" in b'hallo\r\n' 能夠,在3.x須要類型一致b'\r\n' in b'hallo\r\n' windows

python 2.x 裏面的node.has_key('hallo') ,在3.x替換爲'hallo' in nodeapi

python 2.x 字符串不區分字節和字符串,因此有str.decode("unicode-escape"),python 3.x 中文本字符串和字節字符串是嚴格區分的,默認爲unicode格式的文本字符串,因此沒有decode方法。瀏覽器

 

4、文檔服務器

Python及第三方庫api查看,爲了方便python及集成的第三方庫便與查看,python中有個方便的方法,可讓咱們快速簡單的實現這個功能。websocket

配置pydoc服務,cmd中輸入以下代碼:python –m pydoc –p 1234cookie

瀏覽器中運行:http://localhost:1234/ 就能夠打開python及集成的其餘庫的api了。

注意:查看過程當中,不要關閉cmd窗口,否則服務就停了。

這裏主要使用的就是python自帶的pydoc文檔生成工具,pydoc具體使用能夠參看python文檔:https://docs.python.org/2/library/pydoc.html

 

五 、 websoket模塊在windows安裝 。

1。安裝visualcppbuildtools_full.exe ,地址:http://landinghub.visualstudio.com/visual-cpp-build-tools

2。pip install websoket

3。pip install websocket-client ,地址參考:https://pypi.python.org/pypi/websocket-client/

4。websocket中就有創建鏈接connect、發送消息send等函數可供使用,可是websocket.WebSocketApp將這些都封裝好了,只用在實例化的時候傳入自定義函數便可,更方便。所以這裏選擇使用websocket.WebSocketApp來模擬客戶行爲。

WebSocketApp也是websocket中的一個類。要使用WebSocketApp中的回調函數須要傳入一系列的可調用對象。在實例化該類時傳入構造函數中的on_open、on_message、on_error就須要傳入一系列的可調用對象,例如自定義的函數。

如下是websocket.WebSocketApp類中的構造函數的摘錄,簡單介紹一下各個傳入值的說明。

def __init__(self, url, header=[],on_open=None, on_message=None, on_error=None, on_close=None, on_ping=None, on_pong=None,

   on_cont_message=None,keep_running=True,get_mask_key=None, cookie=None,subprotocols=None,on_data=None)

(1)url: websocket的地址。

(2)header: 客戶發送websocket握手請求的請求頭,{'head1:value1','head2:value2'}。

(3)on_open:在創建Websocket握手時調用的可調用對象,這個方法只有一個參數,就是該類自己。

(4)on_message:這個對象在接收到服務器返回的消息時調用。有兩個參數,一個是該類自己,一個是咱們從服務器獲取的字符串(utf-8格式)。

(5)on_error:這個對象在遇到錯誤時調用,有兩個參數,第一個是該類自己,第二個是異常對象。

(6)on_close:在遇到鏈接關閉的狀況時調用,參數只有一個,就是該類自己。

(7)on_cont_message:這個對象在接收到連續幀數據時被調用,有三個參數,分別是:類自己,從服務器接受的字符串(utf-8),連續標誌。

(8)on_data:當從服務器接收到消息時被調用,有四個參數,分別是:該類自己,接收到的字符串(utf-8),數據類型,連續標誌。

(9)keep_running:一個二進制的標誌位,若是爲True,這個app的主循環將持續運行,默認值爲True。

(10)get_mask_key:用於產生一個掩碼。

(11)subprotocols:一組可用的子協議,默認爲空。

除此以外,還有on_ping,on_pong等,詳細內容能夠查看源代碼。

另外說明一下該類中的一個方法叫run_forever()。Run_forever是一個無限循環,只要這個websocket鏈接未斷開,這個循環就會一直進行下去。若是在實現websocket鏈接時使用了心跳包,能夠在這個函數中傳入心跳包的間隔,格式以下:

ws.run_forever(ping_interval=SOCKET_PING_INTERVAL,timeout=SOCKET_TIMEOUT)

若是不傳入任何內容,就不會發送心跳包。

引用:

 https://docs.python.org/3.1/whatsnew/3.0.html#builtins

http://www.cnblogs.com/miniren/p/5885393.html

相關文章
相關標籤/搜索