婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python函數參數和注解的使用

Python函數參數和注解的使用

熱門標簽:小蘇云呼電話機器人 所得系統電梯怎樣主板設置外呼 北京電銷外呼系統加盟 朝陽手機外呼系統 北瀚ai電銷機器人官網手機版 儋州電話機器人 地圖標注面積 佛山400電話辦理 市場上的電銷機器人

四種參數

Python函數func定義如下:

def func(first, *args, second="Hello World", **kwargs):
    print(first)
    print(args)
    print(second)
    print(kwargs)


func("dongfanger", "san", py="good")

運行后會輸出:

dongfanger
('san',)
Hello World
{'py': 'good'}

它有四種參數:

  • first是定位參數,positional parameter,不可省略。
  • *args是可變參數,arguments,存入元組。
  • second是默認值參數,default argument values,可以省略。
  • **args是關鍵字參數,keyword arguments,存入字典。

func函數的調用方式有以下這些:

①傳入單個定位參數。

func("dongfanger")  
dongfanger
()
Hello World
{}

②第一個參數后的任意個參數會被*args捕獲,存入一個元組。

func("dongfanger", "a", "b", "c")
dongfanger
('a', 'b', 'c')
Hello World
{}

③沒有明確指定名稱的關鍵字參數會被**kwargs捕獲,存入一個字典。

func("dongfanger", j="1", k="2")
dongfanger
()
Hello World
{'j': '1', 'k': '2'}

④second只能作為關鍵字參數傳入。

func("dongfanger", second="cool")
dongfanger
()
cool
{}

⑤定位函數也能作為關鍵字參數傳入。

func(first="san")
san
()
Hello World
{}

⑥字典前加上**,其所有元素作為單個參數傳入,同名鍵會綁定到對應具名參數上,余下的被**args捕獲。

my_dict = {"first": "dongfanger", "location": "cd", "second": "cool", "age": "secret"}
func(**my_dict)
dongfanger
()
cool
{'location': 'cd', 'age': 'secret'}

除了這四種參數,還有一種Python3新增加的僅限關鍵字參數。

僅限關鍵字參數

僅限關鍵字參數(keyword-only argument)是Python3的新特性,func函數的second參數就是僅限關鍵字參數,“僅限”的意思是說,只能通過關鍵字參數指定,它一定不會捕獲未命名的定位參數。

假如把參數位置調整一下定義another_func函數:

def another_func(first, another_second="Hello World", *args,  **kwargs):
    print(first)
    print(another_second)
    print(args)
    print(kwargs)


another_func("dongfanger", "a", "b", "c")

輸出會變成:

dongfanger
a  # 注意這里
('b', 'c')
{}

another_second不是僅限關鍵字參數,而只是默認值參數,因為它捕獲到了定位參數。

由此得知,定義僅限關鍵字參數,必須把它放到*args參數后面,就像func函數一樣,反例是another_func函數。

還有第二個方法定義僅限關鍵字參數,在簽名中放一個*:

>>> def f(a, *, b):  # b是僅限關鍵字參數
...    return a, b
...
>>> f(1, b=2)  # 只能傳關鍵字參數
(1, 2)
>>> f(1, 2)  # 不能傳定位參數
Traceback (most recent call last):
  File "input>", line 1, in module>
TypeError: f() takes 1 positional argument but 2 were given
>>> f(1, 2, 3)  # 不能傳定位參數
Traceback (most recent call last):
  File "input>", line 1, in module>
TypeError: f() takes 1 positional argument but 3 were given

僅限關鍵字參數不一定要有默認值,就像b一樣,強制必須傳入實參。

內省中的函數參數

函數內省的意思是說,當你拿到一個“函數對象”的時候,你可以繼續知道,它的名字,參數定義等信息。這些信息可以通過函數對象的屬性(一些雙下劃線的魔法方法)得到。

對于func函數:

def func(first, *args, second="Hello World", **kwargs):
    print(first)
    print(second)
    print(args)
    print(kwargs)

和another_func函數:

def another_func(first, another_second="Hello World", *args,  **kwargs):
    print(first)
    print(another_second)
    print(args)
    print(kwargs)

【__defaults__屬性】

元組,保存著定位參數和關鍵字參數的默認值。

print(func.__defaults__)  # None

print(another_func.__defaults__)  # ('Hello World',)

【__kwdefaults__屬性】

字典,保存僅限關鍵字參數。

print(func.__kwdefaults__)  # {'second': 'Hello World'}

print(another_func.__kwdefaults__)  # None

【__code__屬性】

code對象引用,code對象自身有很多屬性,其中包括參數名稱。

print(func.__code__.co_varnames)  # ('first', 'second', 'args', 'kwargs')

print(another_func.__code__.co_varnames)  # ('first', 'another_second', 'args', 'kwargs')

另外還可以使用inspect庫的signature方法來查看內省中的函數參數:

from inspect import signature

print(signature(func))  
# (first, *args, second='Hello World', **kwargs)

框架和IDE等工具可以使用這些信息驗證代碼。

函數注解

如果刷過力扣算法題,那么對函數注解就不會陌生。比如:

def clip(text:str, max_len:'int > 0'=80) -> str:
    pass

參數:后面是注解表達式,可以用來注解參數類型和約束。如果參數有默認值,注解放在參數名和=號之間。

可以在函數末尾的)和:之間添加->和注解表達式,來對返回值添加注解。

注解表達式可以是任何類型,最常用的類型是類(如str或int)和字符串(如'int > 0')。

函數注解只是個注解,Python對注解所做的唯一的事情是,把它們存入函數的__annotations__屬性中:

print(clip.__annotations__)
#{'text': class 'str'>, 'max_len': 'int > 0', 'return': class 'str'>}

Python不做檢查,不做強制,不做驗證,什么操作都不做!注解只是元數據,可以供框架和IDE等工具使用。

以上就是Python函數參數和注解的使用的詳細內容,更多關于Python函數參數和注解的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • python教程對函數中的參數進行排序
  • Python 類,對象,數據分類,函數參數傳遞詳解
  • Python函數中的不定長參數相關知識總結
  • 詳解Python 函數參數的拆解
  • Python函數參數定義及傳遞方式解析
  • 關于Python函數參數的進階用法

標簽:江蘇 商丘 定西 云南 酒泉 寧夏 龍巖 金融催收

巨人網絡通訊聲明:本文標題《Python函數參數和注解的使用》,本文關鍵詞  Python,函數,參數,和,注解,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python函數參數和注解的使用》相關的同類信息!
  • 本頁收集關于Python函數參數和注解的使用的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    91香蕉视频在线| 国产精品二区一区二区aⅴ污介绍| 不卡电影免费在线播放一区| 久久国产精品一区二区| 麻豆一区二区在线| 精品系列免费在线观看| 国产成人综合在线播放| 国产成人午夜片在线观看高清观看| 国产揄拍国内精品对白| 国精产品一区一区三区mba视频 | 色婷婷精品久久二区二区蜜臂av| 成人免费视频视频在线观看免费| 国产成人三级在线观看| 欧美日韩久久久一区| 在线观看免费视频综合| 欧美一区二区黄色| 久久久亚洲综合| 亚洲天堂中文字幕| 亚洲国产成人av网| 麻豆成人av在线| 成人午夜在线免费| 欧美日韩在线播放| 久久久综合视频| 亚洲图片激情小说| 麻豆一区二区三| 不卡一卡二卡三乱码免费网站| 在线观看日韩电影| 久久免费的精品国产v∧| 综合久久给合久久狠狠狠97色 | 欧美极品美女视频| 自拍av一区二区三区| 日韩电影在线观看网站| 成人永久aaa| 欧美久久久久中文字幕| 中文字幕乱码日本亚洲一区二区| 亚洲午夜久久久久| 国产成人啪免费观看软件| 欧美日韩日日夜夜| 中文字幕乱码一区二区免费| 午夜不卡在线视频| av激情综合网| 精品日韩99亚洲| 日韩一区欧美小说| 国产尤物一区二区在线| 欧美军同video69gay| 久久精品人人做人人爽人人| 婷婷中文字幕综合| 色八戒一区二区三区| 久久久久国色av免费看影院| 午夜激情一区二区三区| 一本大道久久a久久精品综合| 欧美成人女星排名| 日韩成人午夜精品| 欧洲日韩一区二区三区| 欧美国产日韩精品免费观看| 日韩电影在线一区二区| 欧美性大战久久久久久久| 亚洲三级久久久| 成人免费黄色在线| 日本一区二区成人| 极品少妇一区二区三区精品视频| 欧美人动与zoxxxx乱| 亚洲国产cao| 91九色最新地址| 亚洲综合激情另类小说区| 99riav一区二区三区| 国产精品久久影院| 成人毛片老司机大片| 中文字幕不卡三区| av一区二区三区| 亚洲免费毛片网站| 91在线视频网址| 亚洲精品菠萝久久久久久久| 91麻豆精东视频| 亚洲制服丝袜av| 欧美色偷偷大香| 午夜伦理一区二区| 91精品国产综合久久精品麻豆| 天堂成人国产精品一区| 欧美一区二区三区视频免费| 免费人成在线不卡| 久久精品人人爽人人爽| 国产高清在线精品| 国产精品每日更新在线播放网址| 波多野结衣中文字幕一区二区三区| 欧美国产欧美综合| 日本韩国一区二区| 五月综合激情网| 日韩欧美成人一区| 国产电影一区在线| 亚洲精品国产一区二区精华液| 色琪琪一区二区三区亚洲区| 天天av天天翘天天综合网色鬼国产| 欧美精品一二三| 国产jizzjizz一区二区| 亚洲男同性视频| 欧美一二三区精品| 成人高清视频在线观看| 午夜日韩在线观看| 久久精品在线免费观看| 91国产福利在线| 精品在线播放午夜| 夜夜操天天操亚洲| 久久久精品免费免费| 欧美图区在线视频| 国产一区在线不卡| 亚洲成人福利片| 久久亚洲影视婷婷| 欧美日韩久久久| 丁香天五香天堂综合| 亚洲成人第一页| 国产精品久久久久久亚洲毛片 | 3751色影院一区二区三区| 久久精品国产亚洲高清剧情介绍 | 亚洲欧洲精品一区二区精品久久久 | 日韩视频国产视频| 91一区在线观看| 精东粉嫩av免费一区二区三区| 一二三区精品福利视频| 国产欧美视频一区二区| 91精品国产一区二区三区| 99re在线视频这里只有精品| 蜜桃视频一区二区三区| 亚洲一区二区在线免费观看视频 | 成人av电影在线| 久草精品在线观看| 日本午夜一本久久久综合| 亚洲精品国产精品乱码不99| 国产精品网站一区| 久久久久久久久久久久久久久99| 51精品久久久久久久蜜臀| 欧美在线视频日韩| 91蝌蚪porny成人天涯| 粉嫩aⅴ一区二区三区四区 | 国产成人8x视频一区二区| 亚洲福利一区二区| 亚洲在线视频免费观看| 中文字幕亚洲精品在线观看| 国产欧美日韩视频一区二区 | 91国在线观看| 99久久伊人精品| 成人美女视频在线观看18| 懂色av一区二区夜夜嗨| 国产91在线看| 成人免费毛片app| 99riav久久精品riav| 91丨九色丨国产丨porny| 91美女在线观看| 日本丶国产丶欧美色综合| 91官网在线免费观看| 91久久精品一区二区三| 欧美午夜影院一区| 制服丝袜国产精品| 精品国产一区二区亚洲人成毛片| 2017欧美狠狠色| 国产亚洲欧美中文| 1000精品久久久久久久久| 伊人开心综合网| 日韩成人午夜精品| 国产中文一区二区三区| 成人av手机在线观看| 91成人免费在线| 欧美精品第1页| 欧美大黄免费观看| 国产精品久久久久aaaa樱花| 亚洲精品乱码久久久久久久久 | 一区二区国产盗摄色噜噜| 亚洲一区在线观看免费| 日日骚欧美日韩| 国产一区二区福利| 色狠狠色狠狠综合| 日韩亚洲欧美高清| 国产精品污www在线观看| 亚洲成人av一区| 国产99久久久国产精品| 欧美午夜精品理论片a级按摩| 日韩免费观看高清完整版| 国产精品乱码人人做人人爱 | 国产成人精品免费在线| 97精品超碰一区二区三区| 欧美天堂亚洲电影院在线播放| 亚洲精品在线观看网站| 中文字幕一区三区| 蜜臀久久久99精品久久久久久| 成人免费av网站| 91精品久久久久久久99蜜桃 | 欧美四级电影网| 久久香蕉国产线看观看99| 亚洲品质自拍视频| 黑人精品欧美一区二区蜜桃| 91国在线观看| 国产精品色一区二区三区| 日韩精品久久理论片| 91首页免费视频| 国产欧美日韩另类视频免费观看| 亚洲韩国精品一区| 91女厕偷拍女厕偷拍高清| 久久精品欧美一区二区三区不卡| 亚洲成人黄色小说| 色一区在线观看|