国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

對python函數簽名的方法詳解

2020-02-16 00:48:49
字體:
來源:轉載
供稿:網友

函數簽名對象,表示調用函數的方式,即定義了函數的輸入和輸出。

在Python中,可以使用標準庫inspect的一些方法或類,來操作或創建函數簽名。

獲取函數簽名及參數

使用標準庫的signature方法,獲取函數簽名對象;通過函數簽名的parameters屬性,獲取函數參數。

# 注意是小寫的signaturefrom inspect import signaturedef foo(value):  return value# 獲取函數簽名foo_sig = signature(foo)# 通過函數簽名的parameters屬性,可以獲取函數參數foo_params = foo_sig.parameters

創建函數簽名

使用類Parameter的實例創建函數參數列表;使用Signature類,接受函數參數列表,實例化出函數簽名實例。

# 注意是首字母大寫的Signaturefrom inspect import Signature, Parameter# 創建一個函數參數列表,列表內的元素由類Parameter的實例組成# Parameter實例化時,依次接受參數名、參數類型、默認值和參數注解# 默認值和參數類型默認為空,這里的空值不是None,而是Parameter.empty,代表沒有值parms = [Parameter('x', Parameter.POSITIONAL_OR_KEYWORD),     Parameter('y', Parameter.POSITIONAL_OR_KEYWORD),     Parameter('z', Parameter.KEYWORD_ONLY, default=9)]# 使用Signature類,接受函數參數列表,實例化出函數簽名實例sig = Signature(parms)

檢查函數參數是否匹配簽名

使用函數簽名的bind的方法,檢查函數參數是否匹配簽名。

延續上面的例子,通過函數簽名的bind方法,接受函數參數,如果匹配,返回參數BoundArguments實例,如果不匹配,則拋出TypeError,并給出詳細的異常信息。

通過BoundArguments實例的屬性,可以獲取函數簽名、參數的值等內容。

bound_args_01 = sig.bind(1, 2, z=3)# <BoundArguments (x=1, y=2, z=3)>bound_args_02 = sig.bind(1, 2)# <BoundArguments (x=1, y=2)>bound_args_03 = sig.bind(1)# TypeError# missing a required argument: 'y'

以上這篇對python函數簽名的方法詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尼勒克县| 郓城县| 墨竹工卡县| 碌曲县| 嵊州市| 丰宁| 泸溪县| 松阳县| 吴堡县| 徐州市| 监利县| 莱西市| 蓝山县| 屏山县| 金溪县| 建水县| 岑巩县| 赤壁市| 濮阳县| 电白县| 黎平县| 托克逊县| 上杭县| 惠来县| 衡南县| 云安县| 翁源县| 团风县| 兴化市| 彭泽县| 临海市| 和顺县| 舞阳县| 宁陕县| 长沙县| 宝兴县| 广水市| 自治县| 天津市| 藁城市| 区。|