国产探花免费观看_亚洲丰满少妇自慰呻吟_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函數簽名的方法詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 深圳市| 邳州市| 阿瓦提县| 湘潭县| 高安市| 澄迈县| 鄢陵县| 靖西县| 林口县| 金川县| 芦溪县| 松溪县| 房产| 东乡| 静宁县| 吕梁市| 枞阳县| 武平县| 达尔| 东兴市| 余姚市| 隆德县| 楚雄市| 赣榆县| 会理县| 宣恩县| 银川市| 甘南县| 衡阳县| 简阳市| 马关县| 鹤庆县| 新乡市| 莱阳市| 肥西县| 拉萨市| 乌鲁木齐市| 连平县| 民丰县| 青海省| 梅河口市|