新聞中心
async/await 原理及簡單實(shí)現(xiàn)
解決函數(shù)回調(diào)經(jīng)歷了幾個(gè)階段, Promise 對(duì)象, Generator 函數(shù)到async函數(shù)。async函數(shù)目前是解決函數(shù)回調(diào)的最佳方案。很多語言目前都實(shí)現(xiàn)了async,包括Python ,java spring,go等。
目前成都創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、新城網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
async 函數(shù)返回一個(gè) Promise 對(duì)象,當(dāng)函數(shù)執(zhí)行的時(shí)候,一旦遇到 await 就會(huì)先返回,等到觸發(fā)的異步操作完成,再接著執(zhí)行函數(shù)體內(nèi)后面的語句。
async /await 需要在function外部書寫async,在內(nèi)部需要等待執(zhí)行的函數(shù)前書寫await即可
理解async函數(shù)需要先理解Generator函數(shù),因?yàn)閍sync函數(shù)是Generator函數(shù)的語法糖。
Generator是ES6標(biāo)準(zhǔn)引入的新的數(shù)據(jù)類型。Generator可以理解為一個(gè)狀態(tài)機(jī),內(nèi)部封裝了很多狀態(tài),同時(shí)返回一個(gè)迭代器Iterator對(duì)象。可以通過這個(gè)迭代器遍歷相關(guān)的值及狀態(tài)。
Generator的顯著特點(diǎn)是可以多次返回,每次的返回值作為迭代器的一部分保存下來,可以被我們顯式調(diào)用。
一般的函數(shù)使用function聲明,return作為回調(diào)(沒有遇到return,在結(jié)尾調(diào)用return undefined),只可以回調(diào)一次。而Generator函數(shù)使用function*定義,除了return,還使用yield返回多次。
在chrome瀏覽器中這個(gè)例子里,我們可以看到,在執(zhí)行foo函數(shù)后返回了一個(gè)
Generator函數(shù)的實(shí)例。它具有狀態(tài)值suspended和closed,suspended代表暫停,closed則為結(jié)束。但是這個(gè)狀態(tài)是無法捕獲的,我們只能通過Generator函數(shù)的提供的方法獲取當(dāng)前的狀態(tài)。
在執(zhí)行next方法后,順序執(zhí)行了yield的返回值。返回值有value和done兩個(gè)狀態(tài)。value為返回值,可以是任意類型。done的狀態(tài)為false和true,true即為執(zhí)行完畢。在執(zhí)行完畢后再次調(diào)用返回{value: undefined, done: true}
注意:在遇到return的時(shí)候,所有剩下的yield不再執(zhí)行,直接返回{ value: undefined, done: true }
Generator函數(shù)提供了3個(gè)方法,next/return/throw
next方式是按步執(zhí)行,每次返回一個(gè)值,同時(shí)也可以每次傳入新的值作為計(jì)算
return則直接跳過所有步驟,直接返回 {value: undefined, done: true}
throw則根據(jù)函數(shù)中書寫try catch返回catch中的內(nèi)容,如果沒有寫try,則直接拋出異常
這里可以看到在執(zhí)行throw之前,順序的執(zhí)行了狀態(tài),但是在遇到throw的時(shí)候,則直接走進(jìn)catche并改變了狀態(tài)。
這里還要注意一下,因?yàn)闋顟B(tài)機(jī)是根據(jù)執(zhí)行狀態(tài)的步驟而執(zhí)行,所以如果執(zhí)行thow的時(shí)候,沒有遇到try catch則會(huì)直接拋錯(cuò)
以下面兩個(gè)為例
這個(gè)例子與之前的執(zhí)行狀態(tài)一樣,因?yàn)樵趫?zhí)行到throw的時(shí)候,已經(jīng)執(zhí)行到try語句,所以可以執(zhí)行,而下面的例子則不一樣
執(zhí)行throw的時(shí)候,還沒有進(jìn)入到try語句,所以直接拋錯(cuò),拋出undefined為throw未傳參數(shù),如果傳入?yún)?shù)則顯示為傳入的參數(shù)。此狀態(tài)與未寫try的拋錯(cuò)狀態(tài)一致。
遍歷
Generator函數(shù)的返回值是一個(gè)帶有狀態(tài)的Generator實(shí)例。它可以被for of 調(diào)用,進(jìn)行遍歷,且只可被for of 調(diào)用。此時(shí)將返回他的所有狀態(tài)
調(diào)用for of方法后,在后臺(tái)調(diào)用next(),當(dāng)done屬性為true的時(shí)候,循環(huán)退出。因此Generator函數(shù)的實(shí)例將順序執(zhí)行一遍,再次調(diào)用時(shí),狀態(tài)為已完成
狀態(tài)的存儲(chǔ)和改變
Generator函數(shù)中yield返回的值是可以被變量存儲(chǔ)和改變的。
以上的執(zhí)行結(jié)果中,我們可以看到,在第二步的時(shí)候,我們傳入2這個(gè)參數(shù),foo函數(shù)中的a的變量的值0被替換為2,并且在第4次迭代的時(shí)候,返回的是2。而第三次迭代的時(shí)候,傳入的3參數(shù),替換了b的值4,并在第5次迭代的時(shí)候返回了3。所以傳入的參數(shù),是替代上一次迭代的生成值。
yield 委托*
在Generator函數(shù)中,我們有時(shí)需要將多個(gè)迭代器的值合在一起,我們可以使用yield *的形式,將執(zhí)行委托給另外一個(gè)Generator函數(shù)
foo在執(zhí)行的時(shí)候,首先委托給了foo1,等foo1執(zhí)行完畢,再委托給foo2。但是我們發(fā)現(xiàn),”foo1 end” 這一句并沒有輸出。
在整個(gè)Generator中,return只能有一次,在委托的時(shí)候,所有的yield*都是以函數(shù)表達(dá)式的形式出現(xiàn)。return的值是表達(dá)式的結(jié)果,在委托結(jié)束之前其內(nèi)部都是暫停的,等待到表達(dá)式的結(jié)果的時(shí)候,將結(jié)果直接返回給foo。此時(shí)foo內(nèi)部沒有接收的變量,所以未打印。
如果我們希望捕獲這個(gè)值,可以使用yield *foo()的方式進(jìn)行獲取。
如上,我們掌握了Generator函數(shù)的使用方法。async/await語法糖就是使用Generator函數(shù)+自動(dòng)執(zhí)行器來運(yùn)作的。 我們可以參考以下例子
在執(zhí)行的過程中,判斷一個(gè)函數(shù)的promise是否完成,如果已經(jīng)完成,將結(jié)果傳入下一個(gè)函數(shù),繼續(xù)重復(fù)此步驟。
async/await非常好理解,基本理解了Generator函數(shù)之后,幾句話就可以描述清楚。這里沒有過多的繼續(xù)闡述Generator函數(shù)的內(nèi)部執(zhí)行邏輯及原理,如果有對(duì)此有深入理解的童鞋,歡迎補(bǔ)充說明。
python的內(nèi)存管理機(jī)制
論壇
活動(dòng)
招聘
專題
打開CSDN APP
Copyright ? 1999-2020, CSDN.NET, All Rights Reserved
登錄
XCCS_澍
關(guān)注
Python 的內(nèi)存管理機(jī)制及調(diào)優(yōu)手段? 原創(chuàng)
2018-08-05 06:50:53
XCCS_澍
碼齡7年
關(guān)注
內(nèi)存管理機(jī)制:引用計(jì)數(shù)、垃圾回收、內(nèi)存池。
一、引用計(jì)數(shù):
引用計(jì)數(shù)是一種非常高效的內(nèi)存管理手段, 當(dāng)一個(gè) Python 對(duì)象被引用時(shí)其引用計(jì)數(shù)增加 1, 當(dāng)其不再被一個(gè)變量引用時(shí)則計(jì)數(shù)減 1. 當(dāng)引用計(jì)數(shù)等于 0 時(shí)對(duì)象被刪除。
二、垃圾回收 :
1. 引用計(jì)數(shù)
引用計(jì)數(shù)也是一種垃圾收集機(jī)制,而且也是一種最直觀,最簡單的垃圾收集技術(shù)。當(dāng) Python 的某個(gè)對(duì)象的引用計(jì)數(shù)降為 0 時(shí),說明沒有任何引用指向該對(duì)象,該對(duì)象就成為要被回收的垃圾了。比如某個(gè)新建對(duì)象,它被分配給某個(gè)引用,對(duì)象的引用計(jì)數(shù)變?yōu)?1。如果引用被刪除,對(duì)象的引用計(jì)數(shù)為 0,那么該對(duì)象就可以被垃圾回收。不過如果出現(xiàn)循環(huán)引用的話,引用計(jì)數(shù)機(jī)制就不再起有效的作用了
2. 標(biāo)記清除
如果兩個(gè)對(duì)象的引用計(jì)數(shù)都為 1,但是僅僅存在他們之間的循環(huán)引用,那么這兩個(gè)對(duì)象都是需要被回收的,也就是說,它們的引用計(jì)數(shù)雖然表現(xiàn)為非 0,但實(shí)際上有效的引用計(jì)數(shù)為 0。所以先將循環(huán)引用摘掉,就會(huì)得出這兩個(gè)對(duì)象的有效計(jì)數(shù)。
3. 分代回收
從前面“標(biāo)記-清除”這樣的垃圾收集機(jī)制來看,這種垃圾收集機(jī)制所帶來的額外操作實(shí)際上與系統(tǒng)中總的內(nèi)存塊的數(shù)量是相關(guān)的,當(dāng)需要回收的內(nèi)存塊越多時(shí),垃圾檢測(cè)帶來的額外操作就越多,而垃圾回收帶來的額外操作就越少;反之,當(dāng)需回收的內(nèi)存塊越少時(shí),垃圾檢測(cè)就將比垃圾回收帶來更少的額外操作。
python后端開發(fā)需要學(xué)什么?
可以參考下面的路徑去學(xué)習(xí),祝你學(xué)有所成,公司最近在人工智能和自然語言處理的項(xiàng)目后端項(xiàng)目,我也是網(wǎng)上找了很多知識(shí),最后給自己列了一個(gè)學(xué)習(xí)的目錄,按照這個(gè)在復(fù)習(xí)并在總結(jié),希望能幫到你:
計(jì)算機(jī)基本認(rèn)知,環(huán)境搭建 ? ?python環(huán)境搭建
計(jì)算機(jī)基本認(rèn)識(shí),進(jìn)制轉(zhuǎn)換
python注釋使用
python變量使用
python數(shù)據(jù)類型_Number
python數(shù)據(jù)類型 ? ?str字符串類型
容器類型數(shù)據(jù)list,tuple,str
容器類型數(shù)據(jù)set,dict
變量緩存機(jī)制
自動(dòng)類型轉(zhuǎn)換
Number強(qiáng)制類型轉(zhuǎn)換 ?
python運(yùn)算符的使用 ? ?容器類型數(shù)據(jù)強(qiáng)制類型轉(zhuǎn)換
字典強(qiáng)轉(zhuǎn)等長二級(jí)容器
運(yùn)算符_算數(shù)_比較
運(yùn)算符_賦值_成員
運(yùn)算符_身份_邏輯
運(yùn)算符_位運(yùn)算_優(yōu)先級(jí) ?
python流程控制 ? ?代碼塊
流程控制if
多項(xiàng)巢狀分支
循環(huán)結(jié)構(gòu)while
循環(huán)判斷經(jīng)典題
字符串的相關(guān)操作 ?
python循環(huán)結(jié)構(gòu)? ??
關(guān)鍵字continue_break_pass
for循環(huán)的遍歷_range ?
字符串,列表內(nèi)置方法? ??
字符串函數(shù)
format字符串格式化
format特殊符號(hào)的使用
列表的操作
列表函數(shù) ?
字典,集合內(nèi)置方法+文件操作? ??
字典的相關(guān)函數(shù)
集合操作_函數(shù)
文件操作
文件加號(hào)模式 ?
函數(shù),函數(shù)參數(shù) ? ?文件相關(guān)函數(shù)?
函數(shù)
形參實(shí)參
默認(rèn)形參_關(guān)鍵字形參
收集參數(shù)
命名關(guān)鍵字參數(shù)
全局/局部變量,閉包 ? ?return返回值
函數(shù)名的使用
局部變量_全局變量
函數(shù)的嵌套LEGB
關(guān)鍵字nonlocal
閉包函數(shù) ?
遞歸,匿名函數(shù)? ??
locals和globals
閉包特點(diǎn)意義
遞歸含義
斐波那契_尾遞歸
匿名函數(shù)lambda ?
迭代器,高階函數(shù) ? ?迭代器
高階函數(shù)_map
高階函數(shù)_reduce
高階函數(shù)_sorted
高階函數(shù)_filter ?
推導(dǎo)式 ? ?列表推導(dǎo)式
推導(dǎo)式題
集合_字典推導(dǎo)式
生成器表達(dá)式
生成器函數(shù) ?
內(nèi)置方法,linux基本命令 ? ?內(nèi)置函數(shù)
可滑動(dòng)序列
面試題演練
linux安裝
linux基本命令 ?
python模塊 ? ?序列化模塊
數(shù)學(xué)模塊
隨機(jī)模塊
time模塊 ?
python模塊 ? ?os模塊
os_shutil
os.path模塊
計(jì)算文件夾大小
zipfile
tarfile ?
導(dǎo)入模塊包,oop面向?qū)ο笳J(rèn)知? ??
import_from絕對(duì)導(dǎo)入
import_from相對(duì)導(dǎo)入(單入口)
oop面向?qū)ο?/p>
類的封裝性
oop之封裝,繼承 ? ?類的相關(guān)操作
對(duì)象和類的刪除操作
單繼承
多繼承
菱形繼承
oop之多態(tài),魔術(shù)方法 ? ?多態(tài)
魔術(shù)方法__new__
單態(tài)模式
析構(gòu)方法__del__ ?
oop之魔術(shù)方法,異常處理 ? ?魔術(shù)方法__call__
魔術(shù)方法__str__repr__
魔術(shù)方法__bool_add_len__
了解異常
異常處理語法
主動(dòng)拋出異常
裝飾器 ?
裝飾器
靜態(tài)綁定方法
property?
正則表達(dá)式 ? ?單個(gè)字符匹配
多個(gè)字符匹配
匹配分組
命名分組
正則函數(shù)
正則計(jì)算器小程序
認(rèn)識(shí)網(wǎng)絡(luò) ? ?bs_cs流程
傳輸數(shù)據(jù)流程
交換機(jī)和局域網(wǎng)的網(wǎng)絡(luò)通訊
arp協(xié)議 ?
認(rèn)識(shí)tcp/udp協(xié)議 ?
tcp基本語法
tcp循環(huán)發(fā)消息
udp基本語法
udp循環(huán)發(fā)消息
黏包 ?
基于tcp協(xié)議下的應(yīng)用 ? ?socketserver并發(fā)
文件校驗(yàn)
服務(wù)器合法性校驗(yàn)
tcp登錄
并發(fā)編程之進(jìn)程 ? ?進(jìn)程
join
守護(hù)進(jìn)程
lock鎖
Semaphore
生產(chǎn)者消費(fèi)者模型 ? ?Event事件
進(jìn)程隊(duì)列Queue
生產(chǎn)者和消費(fèi)者模型
JoinableQueue
Manager.py
并發(fā)編程之線程
.線程
用類定義線程
守護(hù)線程
lock保證線程數(shù)據(jù)安全
信號(hào)量_Semaphore
死鎖,互斥鎖,遞歸鎖
線程池,進(jìn)程池,協(xié)成的使用
事件Event
線程隊(duì)列
進(jìn)程池和線程池
回調(diào)函數(shù)
協(xié)程
協(xié)程的爬蟲案例
mysql安裝(linux+windows+xshell+navicat) ?
掌握數(shù)據(jù)庫mysql基本操作
mysql登錄,服務(wù)啟動(dòng)
創(chuàng)建賬戶,用戶授權(quán)
數(shù)據(jù)庫,數(shù)據(jù)表,數(shù)據(jù)的增刪改查
認(rèn)識(shí)常用數(shù)據(jù)類型 ?
數(shù)據(jù)庫的存儲(chǔ)引擎和約束 ?
字段約束
約束的刪減
存儲(chǔ)引擎區(qū)別用法
數(shù)據(jù)表之間的關(guān)系 ?
查詢數(shù)據(jù)表 ?
單表查詢
多表聯(lián)查
子查詢
帶EXISTS關(guān)鍵字的子查詢
python操作mysql ?
python連接mysql的事務(wù)處理
sql注入
python連接mysql增刪改查
mysql數(shù)據(jù)恢復(fù) ?
HTML/CSS? ? html文檔介紹,html標(biāo)簽,body標(biāo)簽,head標(biāo)簽介紹,head標(biāo)簽中的meta標(biāo)簽和link標(biāo)簽和title標(biāo)簽介紹,body中的標(biāo)簽分類,基礎(chǔ)標(biāo)簽,img、a、列表、表格、input、label、select等標(biāo)簽,作業(yè)講解,form標(biāo)簽介紹和示例講解,css介紹,引入,css選擇器,背景設(shè)置,高度寬度,字體效果,邊框、盒子模型、display屬性、float屬性等 ?
CSS ? ?偽類選擇器,文字裝飾、a標(biāo)簽補(bǔ)充、定位、權(quán)重、小米商城導(dǎo)航欄講解,原型頭像示例講解 ?
JS基礎(chǔ)/BOM和DOM操作 ? ?小米商城作業(yè),js介紹和js引入,js數(shù)據(jù)類型、流程控制、函數(shù)等操作,js中的JSON,BOM對(duì)象的彈框、location對(duì)象、定時(shí)器、直接查找選擇器、間接查找選擇器、值操作、類值操作、樣式操作、button按鈕補(bǔ)充、事件和綁定事件的兩種方式,常用事件練習(xí) ?
jQuery/Bootstrap ? ?作業(yè)講解,jquery介紹,引入、選擇器、篩選器、值操作、文檔操作、刪除和清空標(biāo)簽、邏輯運(yùn)算符、克隆、事件冒泡和事件委托、綁定事件的方式,作業(yè)講解和模態(tài)對(duì)話框示例,input事件和頁面載入事件補(bǔ)充、bootstrap介紹和引入、全局css樣式、組件和常用插件
自定義web框架 ? ?作業(yè)講解、web框架介紹、自定義web框架實(shí)現(xiàn)、動(dòng)態(tài)頁面、返回不同的html頁面、函數(shù)版、多線程版、返回靜態(tài)文件版,wsgiref版等web框架通過socket來實(shí)現(xiàn),還有jinja2的簡單使用 ?
django下載安裝和URL路由系統(tǒng) ? ?django介紹、MTV和MVC框架介紹、常用指令、目錄結(jié)構(gòu)、pycharm創(chuàng)建django項(xiàng)目、request的常用屬性介紹、登錄示例、url路由系統(tǒng)介紹、有名分組和無名分組, ?
視圖/模板 ? ?request對(duì)象的常用方法和屬性、響應(yīng)方法介紹和使用,CBV和FBV、CBV和FBV加裝飾器,CBV源碼講解,模板渲染系統(tǒng)介紹,語法、簡單示例、內(nèi)置過濾器、for循環(huán)標(biāo)簽、if標(biāo)簽、with標(biāo)簽、自定義過濾器和標(biāo)簽、模板繼承等 ?
Dajngo的ORM(1) ? ?orm介紹,數(shù)據(jù)庫同步指令使用和流程分析、配置連接mysql模型類中的屬性介紹和常用參數(shù)說明,創(chuàng)建表和數(shù)據(jù)、增加的兩種方法、刪除、更新的兩種方法、查詢的13個(gè)api接口 ?
Dajngo的ORM(2) ? ?單表圖書管理系統(tǒng)展示和添加作業(yè)講解、choices屬性、auto_now_add和auto_now參數(shù)講解、url別名和反向解析,基于雙下劃線的模糊查詢,多表結(jié)構(gòu)介紹,圖書管理系統(tǒng)編輯和刪除作業(yè)講解、多表關(guān)系模型類創(chuàng)建和字段說明和參數(shù)介紹、多表數(shù)據(jù)的添加操作,多表的刪除和修改、基于對(duì)象的跨表查詢、雙下劃線跨表查詢、查看原生sql語句的方法、聚合查詢、分組查詢、F查詢、Q查詢等 ?
Ajax與Django/ 中間件 ? ?ajax的介紹和簡單示例,ajax登錄示例、列表數(shù)據(jù)展示示例,ajax操作cookie的補(bǔ)充、中間件介紹、自定義中間件的方法、5個(gè)中間件方法的介紹和使用、基于中間件的session登錄認(rèn)證?
cookie、session以及用戶認(rèn)證組件 ? ?cookie介紹,cookie的流程解析,django操作cookie和其他參數(shù)介紹、session的說明、django的session操作等,多表圖書管理系統(tǒng)作業(yè)講解 ?
vue初識(shí)、es6基本語法、指令系統(tǒng) ? ?let、const、v-if、v-for、v-html、v-text、v-model、v-show、生命周期鉤子函數(shù)、 ?
組件化開發(fā)、組件傳值、axios簡單使用 ? ?組件化開發(fā)、組件傳值、axios簡單使用、vue-router使用、vue-cli安裝 ?
項(xiàng)目初始化/首頁 ? ?項(xiàng)目介紹、創(chuàng)建、初始化、element-ui的使用,單文件組件的使用和axios在單文件中的使用和配置、vue-cli的介紹和使用、路飛項(xiàng)目頂部導(dǎo)航欄頁面效果搭建,輪播圖組件的使用和調(diào)整、購物車頁面搭建和課程詳情頁面搭建,vue-video-player視頻播放插件 ?
drf組件 ? ?序列化器、drf簡單示例、restful規(guī)范、反序列化的校驗(yàn)機(jī)制 ?
drf組件 ? ?apiview、request和response對(duì)象、modelserializer、序列化器保存數(shù)據(jù)、read_only和write_only的參數(shù) ?
drf組件 ? ?viewset、drf路由功能、viewset視圖基類的使用、視圖子類、通用視圖類genericapiview/排序、django-filter過濾器、頻率組件、分頁組件、接口文檔、異常處理、xadmin的安裝和使用、認(rèn)證組件和權(quán)限組件 ?
git、消息隊(duì)列 ? ?git企業(yè)中的使用模式,rabbimq消息隊(duì)列的應(yīng)用 ?
rpc通信,grpc組件 ? ?rpc的概念以及通信模式,最火的grpc組件使用?
輕量級(jí)Flask框架 ? ?Werkzeug服務(wù)介紹、Flask框架介紹 ?
路由系統(tǒng)、自定義路由擴(kuò)展 ?
Cookie、Session、Http請(qǐng)求和響應(yīng) ?
藍(lán)圖、消息閃現(xiàn)、中間件 ?
Flask常用擴(kuò)展、WTForms、使用SQLAchemy ORM ?
Admin、Restful、websocket原理、magic string, payload len,masking key? ?
請(qǐng)求和上下文、多app應(yīng)用、離線腳本、自定義擴(kuò)展?
服務(wù)端項(xiàng)目搭建,項(xiàng)目配置(session、數(shù)據(jù)庫、日志相關(guān)),項(xiàng)目初始化 ?
jsonrpc模塊基本配置和使用,客戶端展示首頁及登錄注冊(cè)葉綿,APICloud頁面控制管理
python進(jìn)階 ? ?并發(fā)、同步、異步、鎖,線進(jìn)程概念以及協(xié)程實(shí)現(xiàn)原理 ?
mysql進(jìn)階課 ? ?基礎(chǔ)知識(shí)梳理、索引、執(zhí)行計(jì)劃 ?
mysql進(jìn)階課 ? ?存儲(chǔ)引擎、日志管理、備份恢復(fù)、主從賦值、優(yōu)化 ?
redis,mongodb ? ?事務(wù)和發(fā)布訂閱、RDB和AOF持久化、緩存擊穿、緩存雪崩等原理介紹、 用戶管理和復(fù)制集(RS)總結(jié)、sharding cluster 分片集群的搭建、分片使用和相關(guān)策略等 ?
算法與設(shè)計(jì)模式 ? ?鏈表、二叉樹、常見算法、二分查找、插入排序、希爾排序、快排、堆排序、哈希查找 ?
算法與設(shè)計(jì)模式 ? ?設(shè)計(jì)模式,單例模式、工廠模式、策略模式、觀察者模式 ?
算法與設(shè)計(jì)模式 ? ?leetcode經(jīng)典算法解析 ?
知識(shí)體系差不多就這么多了,再就是項(xiàng)目部分,具體項(xiàng)目要看需求了,學(xué)會(huì)了釣魚的方法,不怕釣不到魚哦,無論在哪個(gè)行業(yè)做什么樣的項(xiàng)目都沒問題呢!
我自己也搜集了一些經(jīng)典的資料,要是想要加我百度網(wǎng)盤:艾美電商,我發(fā)給你!
文章名稱:python委托函數(shù),python 委托
分享網(wǎng)址:http://www.ef60e0e.cn/article/hejoec.html