婷婷综合国产,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
    成人网在线免费视频| 337p粉嫩大胆噜噜噜噜噜91av| 国产欧美日韩另类视频免费观看| 国内不卡的二区三区中文字幕| 久久嫩草精品久久久精品| 成人一区二区三区中文字幕| 国产一区二区在线免费观看| 一区二区三区在线视频免费| 精品美女被调教视频大全网站| 白白色 亚洲乱淫| 日本在线播放一区二区三区| 国产精品久久久久久亚洲毛片| 欧美精品欧美精品系列| 国产一区二区不卡在线| 成人夜色视频网站在线观看| 成人在线一区二区三区| 99麻豆久久久国产精品免费优播| 99久久精品免费观看| 国产麻豆精品一区二区| 国产精品2024| 狠狠狠色丁香婷婷综合激情| 国产成人超碰人人澡人人澡| 欧美a级一区二区| 亚洲主播在线观看| 亚洲美女免费视频| 国产精品久久久久永久免费观看| 亚洲日本成人在线观看| 亚洲欧洲精品天堂一级 | 欧洲精品一区二区三区在线观看| 紧缚捆绑精品一区二区| 欧美aaa在线| 成人免费不卡视频| 欧美日韩免费一区二区三区| 在线精品视频小说1| 欧美xxxx在线观看| 伊人开心综合网| 亚洲精品一二三区| 九九精品视频在线看| 一本大道久久a久久综合婷婷 | 亚洲卡通动漫在线| 日本不卡高清视频| 99在线精品视频| 91精品国产高清一区二区三区| 欧美性xxxxx极品少妇| 成人h精品动漫一区二区三区| 国产精品18久久久久久vr| 日本韩国欧美一区| 日本韩国一区二区三区视频| 久久综合色综合88| 亚洲综合在线免费观看| 处破女av一区二区| 欧美一级久久久久久久大片| 精品欧美久久久| 午夜精品久久久久久久久久| 男女性色大片免费观看一区二区 | 久久国产尿小便嘘嘘尿| 激情图片小说一区| 欧美人牲a欧美精品| 在线国产亚洲欧美| 日本一区二区三区视频视频| 日韩av电影免费观看高清完整版| av一区二区三区黑人| 国产精品污网站| 亚洲妇女屁股眼交7| 七七婷婷婷婷精品国产| 欧美日韩中文字幕一区二区| 国产精品国产三级国产有无不卡| 极品尤物av久久免费看| 日韩一本二本av| 青青草91视频| 91精品国产综合久久精品图片| 久久亚洲一级片| 精品一区二区三区在线观看国产| 欧美日韩高清一区二区不卡| 亚洲一区二区五区| 欧美综合视频在线观看| 亚洲综合网站在线观看| 欧洲视频一区二区| 亚洲成年人网站在线观看| 国模冰冰炮一区二区| 久久先锋影音av鲁色资源网| 激情久久五月天| 国产片一区二区三区| 粉嫩久久99精品久久久久久夜| 欧美色大人视频| 天堂一区二区在线| 99精品偷自拍| 一区二区欧美国产| 欧美日韩在线亚洲一区蜜芽| 亚洲va国产天堂va久久en| 欧美一区二区观看视频| 国内精品国产三级国产a久久| 26uuu成人网一区二区三区| 国产成人精品综合在线观看| 中文字幕一区二区三区蜜月| 欧美午夜电影在线播放| 蜜桃av噜噜一区二区三区小说| 欧美色综合网站| 秋霞电影网一区二区| 国产视频一区不卡| 国产一区二区看久久| 中文字幕一区免费在线观看| 欧美日韩一区成人| 国产高清在线观看免费不卡| 亚洲一区视频在线| 久久中文字幕电影| 欧日韩精品视频| 国产资源精品在线观看| 一区二区三区在线视频免费 | 日韩一区二区三区四区| 高清国产一区二区三区| 香蕉影视欧美成人| 国产精品无圣光一区二区| 正在播放亚洲一区| 成人高清视频在线| 久久精品免费看| 亚洲一区二区在线免费观看视频| 欧美精品一区二| 3d成人动漫网站| 99国产精品久久久久| 久久99国产精品尤物| 一区二区在线看| 国产精品网站一区| 日韩欧美三级在线| 国产又黄又大久久| 五月婷婷综合网| 亚洲伦在线观看| 国产午夜精品一区二区三区四区| 精品视频999| 一本色道久久综合精品竹菊| 久久超碰97中文字幕| 天天免费综合色| 亚洲第一成年网| 一区二区三区在线观看国产 | 日韩三级电影网址| 欧美日本一区二区| 欧美日韩精品欧美日韩精品一综合| 国产成人av电影在线观看| 精品制服美女久久| 免费观看30秒视频久久| 亚洲综合另类小说| 亚洲一二三四区| 一区二区三区日韩| 亚洲影视在线观看| 亚洲国产一二三| 亚洲五码中文字幕| 亚洲第一在线综合网站| 午夜视黄欧洲亚洲| 日韩精品亚洲专区| 男男成人高潮片免费网站| 视频一区欧美精品| 麻豆精品视频在线观看免费| 国产精品久久久久久福利一牛影视| 专区另类欧美日韩| 国产精品视频yy9299一区| 久久精品夜夜夜夜久久| 精品处破学生在线二十三| 国产主播一区二区| 久久精品噜噜噜成人88aⅴ| 美女视频黄 久久| 蓝色福利精品导航| 国产美女娇喘av呻吟久久| 国产激情91久久精品导航 | 欧美一个色资源| 日韩免费高清电影| 久久综合色综合88| 国产精品视频看| 尤物视频一区二区| 日韩精品91亚洲二区在线观看| 亚洲免费观看高清完整版在线观看 | 日本aⅴ免费视频一区二区三区| 中文字幕一区二区不卡| 欧美精三区欧美精三区| 日韩欧美久久一区| 国产日产欧美一区二区三区 | 中文字幕av在线一区二区三区| 成年人国产精品| av高清不卡在线| 欧美另类变人与禽xxxxx| 精品三级在线观看| 亚洲色欲色欲www| 日韩高清中文字幕一区| 国产乱码精品一品二品| 在线国产电影不卡| 久久先锋影音av| 亚洲欧美乱综合| 国产乱人伦偷精品视频免下载| 色综合久久88色综合天天免费| 欧美精品高清视频| xnxx国产精品| 亚洲国产婷婷综合在线精品| 国产乱子伦视频一区二区三区| 日本道在线观看一区二区| 久久尤物电影视频在线观看| 九一久久久久久| 日韩电影一区二区三区四区| 国产精品一区二区三区乱码 | 成人sese在线| 日韩免费福利电影在线观看| 日韩理论片一区二区|