欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

對python函數(shù)簽名的方法詳解

 更新時(shí)間:2019年01月22日 10:01:14   作者:BlackMatrix  
今天小編就為大家分享一篇對python函數(shù)簽名的方法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

函數(shù)簽名對象,表示調(diào)用函數(shù)的方式,即定義了函數(shù)的輸入和輸出。

在Python中,可以使用標(biāo)準(zhǔn)庫inspect的一些方法或類,來操作或創(chuàng)建函數(shù)簽名。

獲取函數(shù)簽名及參數(shù)

使用標(biāo)準(zhǔn)庫的signature方法,獲取函數(shù)簽名對象;通過函數(shù)簽名的parameters屬性,獲取函數(shù)參數(shù)。

# 注意是小寫的signature
from inspect import signature

def foo(value):
  return value

# 獲取函數(shù)簽名
foo_sig = signature(foo)
# 通過函數(shù)簽名的parameters屬性,可以獲取函數(shù)參數(shù)
foo_params = foo_sig.parameters

創(chuàng)建函數(shù)簽名

使用類Parameter的實(shí)例創(chuàng)建函數(shù)參數(shù)列表;使用Signature類,接受函數(shù)參數(shù)列表,實(shí)例化出函數(shù)簽名實(shí)例。

# 注意是首字母大寫的Signature
from inspect import Signature, Parameter

# 創(chuàng)建一個(gè)函數(shù)參數(shù)列表,列表內(nèi)的元素由類Parameter的實(shí)例組成
# Parameter實(shí)例化時(shí),依次接受參數(shù)名、參數(shù)類型、默認(rèn)值和參數(shù)注解
# 默認(rèn)值和參數(shù)類型默認(rèn)為空,這里的空值不是None,而是Parameter.empty,代表沒有值
parms = [Parameter('x', Parameter.POSITIONAL_OR_KEYWORD),
     Parameter('y', Parameter.POSITIONAL_OR_KEYWORD),
     Parameter('z', Parameter.KEYWORD_ONLY, default=9)]

# 使用Signature類,接受函數(shù)參數(shù)列表,實(shí)例化出函數(shù)簽名實(shí)例
sig = Signature(parms)

檢查函數(shù)參數(shù)是否匹配簽名

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

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

通過BoundArguments實(shí)例的屬性,可以獲取函數(shù)簽名、參數(shù)的值等內(nèi)容。

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函數(shù)簽名的方法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python使用pandas實(shí)現(xiàn)對數(shù)據(jù)進(jìn)行特定排序

    Python使用pandas實(shí)現(xiàn)對數(shù)據(jù)進(jìn)行特定排序

    在數(shù)據(jù)分析和處理過程中,排序是一項(xiàng)常見而重要的操作,本文將詳細(xì)介紹如何利用pandas對數(shù)據(jù)進(jìn)行特定排序,包括基本排序、多列排序、自定義排序規(guī)則等方面的內(nèi)容,需要的可以了解下
    2024-03-03
  • python Dejavu庫快速識別音頻指紋實(shí)例探究

    python Dejavu庫快速識別音頻指紋實(shí)例探究

    這篇文章主要為大家介紹了python Dejavu庫快速識別音頻指紋實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python入門基礎(chǔ)之變量及字符串

    Python入門基礎(chǔ)之變量及字符串

    Python是一個(gè)不錯(cuò)的語言,Python語言簡單易懂還具有強(qiáng)大的編程能力,同時(shí)對于大數(shù)據(jù)分析有很明顯的幫助,這篇文章主要給大家介紹了關(guān)于Python入門基礎(chǔ)之變量及字符串的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • python中矩陣合并、拼接、組合的實(shí)現(xiàn)示例

    python中矩陣合并、拼接、組合的實(shí)現(xiàn)示例

    本文主要介紹了python中矩陣合并、拼接、組合的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 使用?OpenCV-Python?識別答題卡判卷功能

    使用?OpenCV-Python?識別答題卡判卷功能

    這篇文章主要介紹了使用?OpenCV-Python?識別答題卡判卷,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • python解析庫Beautiful?Soup安裝的詳細(xì)步驟

    python解析庫Beautiful?Soup安裝的詳細(xì)步驟

    Beautiful?Soup是python的一個(gè)庫,最主要的功能是從網(wǎng)頁抓取數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于python解析庫Beautiful?Soup安裝的詳細(xì)步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • Python數(shù)據(jù)分析基礎(chǔ)之異常值檢測和處理方式

    Python數(shù)據(jù)分析基礎(chǔ)之異常值檢測和處理方式

    這篇文章主要介紹了Python數(shù)據(jù)分析基礎(chǔ)之異常值檢測和處理方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 如何用Python實(shí)現(xiàn)簡單的Markdown轉(zhuǎn)換器

    如何用Python實(shí)現(xiàn)簡單的Markdown轉(zhuǎn)換器

    這篇文章主要介紹了如何用Python實(shí)現(xiàn)簡單的Markdown轉(zhuǎn)換器,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • python實(shí)現(xiàn)水印圖片功能

    python實(shí)現(xiàn)水印圖片功能

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)水印圖片功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Python3標(biāo)準(zhǔn)庫之dbm UNIX鍵-值數(shù)據(jù)庫問題

    Python3標(biāo)準(zhǔn)庫之dbm UNIX鍵-值數(shù)據(jù)庫問題

    dbm是面向DBM數(shù)據(jù)庫的一個(gè)前端,DBM數(shù)據(jù)庫使用簡單的字符串值作為鍵來訪問包含字符串的記錄。這篇文章主要介紹了Python3標(biāo)準(zhǔn)庫:dbm UNIX鍵-值數(shù)據(jù)庫的相關(guān)知識,需要的朋友可以參考下
    2020-03-03

最新評論