中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

裝飾器,functools,參數注解

發布時間:2020-04-05 22:20:21 來源:網絡 閱讀:374 作者:shadowkg 欄目:編程語言

裝飾器(無參)
? 它是一個函數
? 函數作為它的形參
? 返回值也是一個函數
裝飾器和高階函數
? 裝飾器是高階函數,但裝飾器是對傳入函數的功能的裝飾(功能增強)
帶參裝飾器
? 它是一個函數
? 函數作為它的形參
? 返回值是一個不帶參的裝飾器函數
? 使用@functionname(參數列表)方式調用
? 可以看做在裝飾器外層又加了一層函數
函數注解
? Python 3.5引入
? 對函數的參數進行類型注解
? 對函數的返回值進行類型注解
? 只對函數參數做一個輔助的說明,并不對函數參數進行類型檢查
? 提供給第三方工具,做代碼分析,發現隱藏的bug
? 函數注解的信息,保存在annotations屬性中
函數參數類型檢查
? 思路
? 函數參數的檢查,一定是在函數外
? 函數應該作為參數,傳入到檢查函數中
? 檢查函數拿到函數傳入的實際參數,與形參聲明對比
? annotations屬性是一個字典,其中包括返回值類型的聲明。假設要做位置參數的判斷,無
法和字典中的聲明對應。使用inspect模塊
inspet模塊
? 提供獲取對象信息的函數,可以檢查函數和類、類型檢查
signature(callable),獲取簽名(函數簽名包含了一個函數的信息,包括函數名、它的參數類型、它所在的類和名稱空間及其他信息)
? inspect.isfunction(add),是否是函數
? inspect.ismethod(add)),是否是類的方法
? inspect.isgenerator(add)),是否是生成器對象
? inspect.isgeneratorfunction(add)),是否是生成器函數
? inspect.isclass(add)),是否是類
? inspect.ismodule(inspect)),是否是模塊
? inspect.isbuiltin(print)),是否是內建對象
Parameter對象
? 保存在元組中,是只讀的
? name,參數的名字
? annotation,參數的注解,可能沒有定義
? default,參數的缺省值,可能沒有定義
? empty,特殊的類,用來標記default屬性或者注釋annotation屬性的空值
? kind,實參如何綁定到形參,就是形參的類型
functools模塊
? reduce方法
? reduce方法,顧名思義就是減少
? 可迭代對象不能為空;初始值沒提供就在可迭代對象中取一個元素
partial方法
? 偏函數,把函數部分的參數固定下來,相當于為部分的參數添加了一個固定的默認值,形成一
個新的函數并返回
? 從partial生成的新函數,是對原函數的封裝
lru_cache裝飾器
? 通過一個字典緩存被裝飾函數的調用和返回值
裝飾器應用練習
? 二、寫一個命令分發器
? 程序員可以方便的注冊函數到某一個命令,用戶輸入命令時,路由到注冊的函數
? 如果此命令沒有對應的注冊函數,執行默認函數
? 用戶輸入用input(">>")
裝飾器,functools,參數注解

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安丘市| 冀州市| 安阳县| 铁岭县| 玉山县| 南雄市| 桂林市| 茂名市| 丹阳市| 汾阳市| 彩票| 桃园市| 孟连| 德昌县| 鄂托克旗| 永安市| 曲水县| 高碑店市| 玉林市| 旅游| 海阳市| 米脂县| 青冈县| 惠来县| 亚东县| 本溪| 留坝县| 鹿泉市| 台中市| 巴林左旗| 迁安市| 双江| 囊谦县| 德昌县| 红安县| 青冈县| 太原市| 崇阳县| SHOW| 建湖县| 曲阳县|