-
實(shí)例方法 就是在類中定義的函數(shù), 實(shí)例方法的第一個(gè)參數(shù)永遠(yuǎn)都是self
self 指向調(diào)用該方法的實(shí)例對象本身
實(shí)例對象 具體化的類
查看全部 -
定義類 class className()
類實(shí)例話 a = className()
查看全部 -
偏函數(shù)指的就是“創(chuàng)建一個(gè)調(diào)用另外一個(gè)部分參數(shù)或變量已經(jīng)預(yù)置的函數(shù)”的函數(shù)的用法,如上所示,int()函數(shù)的base參數(shù),沒有指定的時(shí)候,默認(rèn)是以十進(jìn)制工作的,當(dāng)指定base=2的時(shí)候,int2實(shí)際上就變成了部分參數(shù)(base)已經(jīng)預(yù)置了的偏函數(shù)。
functools.partial可以把一個(gè)參數(shù)多的函數(shù)變成一個(gè)參數(shù)少的新函數(shù),少的參數(shù)需要在創(chuàng)建時(shí)指定默認(rèn)值,這樣,新函數(shù)調(diào)用的難度就降低了。
查看全部 -
匿名函數(shù)使用lambda定義:lambda x: x * x,就可以完成原來顯式定義的f(x)函數(shù)的功能,冒號前面的x表示匿名函數(shù)的參數(shù),后面的是一個(gè)表達(dá)式,匿名函數(shù)有個(gè)限制,就是只能有一個(gè)表達(dá)式,不寫return,返回值就是該表達(dá)式的結(jié)果。
查看全部 -
像這種內(nèi)層函數(shù)引用了外層函數(shù)的變量(參數(shù)也算變量),然后返回內(nèi)層函數(shù)的情況,稱為閉包(Closure)。
查看全部 -
像這種內(nèi)層函數(shù)引用了外層函數(shù)的變量(參數(shù)也算變量),然后返回內(nèi)層函數(shù)的情況,稱為閉包(Closure)。
閉包的特點(diǎn)是返回的函數(shù)還引用了外層函數(shù)的局部變量,所以,要正確使用閉包,就要確保引用的局部變量在函數(shù)返回后不能變。
查看全部 -
sorted接受key參數(shù),用來指定排序的字段,key的值是一個(gè)函數(shù),接受待排序列表的元素作為參數(shù),并返回對應(yīng)需要排序的字段。因此,sorted()函數(shù)也是高階函數(shù)。
查看全部 -
和map函數(shù)一樣,reduce()函數(shù)也是Python內(nèi)置的一個(gè)高階函數(shù)。reduce()函數(shù)接收的參數(shù)和 map() 類似,一個(gè)函數(shù) f,一個(gè)list,但行為和 map()不同,reduce()傳入的函數(shù) f 必須接收兩個(gè)參數(shù),reduce()對list的每個(gè)元素反復(fù)調(diào)用函數(shù)f,并返回最終結(jié)果值。
查看全部 -
類方法可以訪問類屬性
類方法有專門的標(biāo)簽@classmethod
類方法可以通過set函數(shù)修改類屬性
查看全部 -
不能被外部訪問的屬性稱為私有屬性。私有屬性是以雙下劃線'__'開頭的屬性。
可從類內(nèi)部訪問,私有屬性是為了保護(hù)類或?qū)嵗龑傩圆槐煌獠课廴径O(shè)計(jì)的。
查看全部 -
在類屬性和實(shí)例屬性同時(shí)存在的情況下,實(shí)例屬性的優(yōu)先級是要高于類屬性的,在操作實(shí)例的時(shí)候,優(yōu)先是操作實(shí)例的屬性。
當(dāng)實(shí)例沒有和類同名的時(shí)候,通過實(shí)例對象,依然可以訪問到類屬性。
過實(shí)例是無法修改類的屬性的
查看全部 -
實(shí)例屬性每個(gè)實(shí)例各自擁有,互相獨(dú)立,而類屬性有且只有一份。
類屬性也是可以動態(tài)添加和修改的
查看全部 -
實(shí)例屬性每個(gè)實(shí)例各自擁有,互相獨(dú)立,而類屬性有且只有一份。
類屬性也是可以動態(tài)添加和修改的
查看全部 -
實(shí)例屬性每個(gè)實(shí)例各自擁有,互相獨(dú)立,而類屬性有且只有一份。
類屬性也是可以動態(tài)添加和修改的
查看全部 -
在定義 Person 類時(shí),可以為Person類添加一個(gè)特殊的__init__()方法,當(dāng)創(chuàng)建實(shí)例時(shí),__init__()方法被自動調(diào)用
__init__() 方法的第一個(gè)參數(shù)必須是 self
定義類后,就可以相應(yīng)的實(shí)例化對象了,需要注意的是,在實(shí)例化的時(shí)候,需要提供除self以外的所有參數(shù)。
查看全部 -
HTTP服務(wù)器是一種特殊的Socket服務(wù)器,它在網(wǎng)絡(luò)連接之上,定義了HTTP協(xié)議,使得網(wǎng)頁、手機(jī)H5等數(shù)據(jù),都可以以標(biāo)準(zhǔn)的HTTP協(xié)議進(jìn)行傳輸。
Python提供了簡易的HTTP服務(wù)器,可以直接運(yùn)行起來。
在終端,輸入這條命令,就可以啟動一個(gè)HTTP服務(wù)器。python?-m?http.server
啟動成功后,會輸出以下信息:
Serving?HTTP?on?0.0.0.0?port?8000?(http://0.0.0.0:8000/)?...
提示HTTP服務(wù)器在本機(jī)8000端口運(yùn)行,接著就可以在瀏覽器輸入http://127.0.0.1:8000看到由這個(gè)服務(wù)器提供的網(wǎng)頁。
這個(gè)HTTP服務(wù)器會把運(yùn)行目錄的所有文件列出來,并提供下載功能。
任務(wù):
# Python自帶的HTTP服務(wù)器,默認(rèn)的端口為8000端口,同時(shí)默認(rèn)的目錄是當(dāng)前終端啟動運(yùn)行的目錄,請啟動Python自帶的HTTP服務(wù)器,指定端口為9999,并指定目錄路徑為C:/。
python?-m?http.server?9999?-d?C:/
查看全部 -
進(jìn)行網(wǎng)絡(luò)通信,需要建立起通信雙方的連接,連接的雙方分別稱為客戶端和服務(wù)端,在Python中,使用套接字socket來建立起網(wǎng)絡(luò)連接。
????套接字包含在socket模塊中:
import?socket socket.socket()
服務(wù)端使用socket建立連接需要四個(gè)步驟:
????1. 新建socket
????2. 綁定IP和端口(bind)
????3. 監(jiān)聽連接(listen)
????4. 接收連接(accept)
客戶端使用socket建立連接需要兩個(gè)步驟:
????1. 新建socket
????2. 連接服務(wù)端(connect)
網(wǎng)絡(luò)連接上以后,客戶端和服務(wù)端就可以進(jìn)行數(shù)據(jù)通信了,套接字通過send()函數(shù)發(fā)送數(shù)據(jù),通過recv()函數(shù)接收數(shù)據(jù)。
#?server.py import?socket server?=?socket.socket()?#?1.?新建socket server.bind(('127.0.0.1',?8999))?#?2.?綁定IP和端口(其中127.0.0.1為本機(jī)回環(huán)IP) server.listen(5)?#?3.?監(jiān)聽連接 s,?addr?=?server.accept()?#?4.?接受連接 print('connect?addr:{}'.format(addr)) content?=s.recv(1024) print(str(content,?encoding='utf-8'))??#?接受來自客戶端的消息,并編碼打印出來 s.close()
#?client.py import?socket client?=?socket.socket()?#?1.?新建socket client.connect(('127.0.0.1',?8999))?#?2.?連接服務(wù)端(注意,IP和端口要和服務(wù)端一致) client.send(bytes('Hello?World.?Hello?Socket',?encoding='utf-8'))?#?發(fā)送內(nèi)容,注意發(fā)送的是字節(jié)字符串。 client.close()
接著在一個(gè)終端先運(yùn)行服務(wù)端:
python?server.py
然后再在另外一個(gè)終端運(yùn)行客戶端:
python?client.py
在服務(wù)端的終端,將會輸出以下信息:
connect?addr:('127.0.0.1',?50382) b'Hello?World.?Hello?Socket'
查看全部 -
網(wǎng)絡(luò)編程:
查看全部
舉報(bào)