day9 函式基礎知識,裝飾器

2022-09-20 02:57:15 字數 720 閱讀 1548

個人理解裝飾器

無參裝飾器:功能用來拓展函式 ,為原函式新增其他功能

原則 1 原始碼不動 2 呼叫方式不變

(1) 既要新增新功能又要保持原函式**不變,==>>那麼只能重新寫乙個函式(以outer函式為例)將原函式傳入outer函式中,

然後在outer函式中新增新功能拓展函式,(函式的呼叫巢狀)

(2) 但是有要求呼叫方式不變,呼叫方式很好解決(可以用複製的方法),但是要保證新呼叫函式名與原函式傳參相一致並且要傳給原函式.

而outer函式傳入的引數包括原函式,不可能與原函式的引數一致,所以只能再次寫乙個函式

(以inner函式為例)將原函式的引數傳入inner函式,並使其與原函式的引數一致(函式的定義巢狀)

(3) 因為我們[必須保證我們傳入的原函式可以呼叫傳入的引數]所以只有在函式的外層或者內層再次寫乙個函式,又因為我們傳入引數時必須知道原函式

是什麼,所以outer函式在最外層傳入(函式名),inner函式在第二層,接受原函式的引數,並且傳遞給原函式引數(使用(*args,**kwargs))的方式

(4) 給函式新增功能要在inner函式內,inner是負責接收原函式的引數的,即我們要用inner函式代替原函式.所以新增的功能要在函式內部.

(5) 最後通過outer()返回inner,再將outer()賦值給原函式的函式名.例 login = outer() = inner. 呼叫login()相當於呼叫 inner() 至此進出功能完成

c 基礎知識day9

1.異常在類層次間的使用 案例 設計乙個陣列類 myarray,過載操作,陣列初始化時,對陣列的個數進行有效檢查 index 0 丟擲異常enegative index 0 丟擲異常 ezero 3 index 1000丟擲異常etoobig 4 index 10 丟擲異常etoosmall 5 e...

day9 函式基礎

a.什麼是函式 函式就是對實現某一特定功能的 的封裝。機器 b.函式的分類 誰定義的函式 系統函式 python已經定義好,程式設計師可以直接使用的函式.別人已經造好的機器 自定義函式 由程式設計師自己定義,程式設計師可以自己使用或者給別人使用的函式.自己造機器 語法 def 函式名 形參列表 函式...

Python基礎 函式(Day9)

一 函式的定義 函式是從上到下依次執行,將函式名載入到記憶體,函式體放到乙個臨時儲存空間,見到函式名執行。li 1,2,2,4,6,7,4,5 def my len count 0 for i in li count 1 my len 二 函式的返回值 return 1.在函式中遇到return結束...