Python 系統(tǒng)教程
Python3 菜鳥教程
廖雪峰 Python3 教程
Python 編程時光
Python 函數(shù)傳參
Python 變量
Python 就是這樣設計的泣港,它認為在函數(shù)體中嚷硫,如果對變量有賦值操作坤候,則證明這個變量是一個局部變量器联,并且它只會從局部變量中去讀取數(shù)據延欠。
Python不用聲明變量嗎隅津?
Python 函數(shù)/方法
Python 中的 classmethod 和 staticmethod 有什么具體用途辩撑?
Python 實例方法蛹屿、類方法、靜態(tài)方法的區(qū)別與作用
Python函數(shù)接口的一些設計心得
Python 閉包
閉包(closure)是函數(shù)式編程的重要的語法結構放钦。閉包也是一種組織代碼的結構色徘,它同樣提高了代碼的可重復使用性。
定義:
在計算機科學中最筒,閉包(Closure)是詞法閉包(Lexical Closure)的簡稱贺氓,是引用了自由變量的函數(shù)。這個被引用的自由變量將和這個函數(shù)一同存在床蜘,即使已經離開了創(chuàng)造它的環(huán)境也不例外辙培。所以,有另一種說法認為閉包是由函數(shù)和與其相關的引用環(huán)境組合而成的實體邢锯。
特點:
1. 必須有一個內嵌函數(shù)
2. 內嵌函數(shù)必須引用外部函數(shù)中的變量
3. 外部函數(shù)的返回值必須是內嵌函數(shù)扬蕊。
注意: 通過nonlocal解決局部變量賦值問題
應用:
Python 裝飾器
定義:
裝飾器本質上是一個Python函數(shù)尾抑,它可以讓其他函數(shù)在不需要做任何代碼變動的前提下增加額外功能歇父,裝飾器的返回值也是一個函數(shù)對象。
應用場景:
它經常用于有切面需求的場景再愈,比如:插入日志榜苫、性能測試、事務處理翎冲、緩存垂睬、權限校驗等場景。裝飾器是解決這類問題的絕佳設計抗悍,有了裝飾器驹饺,我們就可以抽離出大量與函數(shù)功能本身無關的雷同代碼并繼續(xù)重用。概括的講缴渊,裝飾器的作用就是為已經存在的對象添加額外的功能赏壹。
實例:loguru + 反射 + 偏函數(shù) + 裝飾器 + 異常捕獲(傳參) + 運行時間
注意:
被裝飾后的函數(shù)其實已經是另外一個函數(shù)了,Python的functools包中提供了一個叫wraps的decorator來消除這樣的副作用衔沼,來保證被裝飾器裝飾后的函數(shù)還擁有原來的屬性蝌借,functools.wraps通過partial以及update_wrapper來實現(xiàn)。functools.partial 偏函數(shù)俐巴,常用于修改源碼函數(shù)默認值骨望。
多個解釋器執(zhí)行順序:
一篇文章搞懂裝飾器所有用法
Python 裝飾器裝飾類中的方法
帶可選參數(shù)的裝飾器
沒看完這11 條硬爆,別說你精通 Python 裝飾器
Python 猴子補丁(Monkey Patch)
猴子補丁(Monkey Patch)就是在運行過程中動態(tài)修改一個類的方法或變量等
- 在運行時替換方法欣舵、屬性等
- 在不修改第三方代碼的情況下增加原來不支持的功能
- 在運行時為內存中的對象增加patch而不是在磁盤的源代碼中增加
python面試題精講——monkey patch(猴子補丁)
Python 繼承
Python 斷言
Python 異常處理的哲學
Python 工匠: 異常處理的三個好習慣
python異常處理的哲學
raise是更好的return
Python 上下文管理器
深刻理解上下文管理器
深入理解 Python 中的上下文管理器
Python進階:With語句和上下文管理器ContextManager
Python中的上下文管理器和裝飾器之間的區(qū)別