日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python函数参数那些事,关键字参数与位置参数

發(fā)布時(shí)間:2023/12/4 python 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python函数参数那些事,关键字参数与位置参数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在調(diào)用函數(shù)時(shí)傳給 function(或 method)的值。參數(shù)分為兩種:

關(guān)鍵字參數(shù)?:在函數(shù)調(diào)用中前面帶有標(biāo)識(shí)符(例如?name=)或者作為包含在前面帶有?**?的字典里的值傳入。舉例來(lái)說(shuō),3?和?5?在以下對(duì) complex()的調(diào)用中均屬于關(guān)鍵字參數(shù):

complex(real=3, imag=5) complex(**{'real': 3, 'imag': 5})

位置參數(shù):不屬于關(guān)鍵字參數(shù)的參數(shù)。位置參數(shù)可出現(xiàn)于參數(shù)列表的開(kāi)頭以及/或者作為前面帶有?*?的 iterable里的元素被傳入。舉例來(lái)說(shuō),3?和 5?在以下調(diào)用中均屬于位置參數(shù):

complex(3, 5) complex(*(3, 5))

規(guī)則:在函數(shù)調(diào)用中,關(guān)鍵字參數(shù)必須跟隨在位置參數(shù)的后面。傳遞的所有關(guān)鍵字參數(shù)必須與函數(shù)接受的其中一個(gè)參數(shù)匹配,它們的順序并不重要。這也包括非可選參數(shù)。不能對(duì)同一個(gè)參數(shù)多次賦值

以下是一些正確錯(cuò)誤范例:

#函數(shù)定義 def test(arg1, arg2='hello', arg3='world', arg4='nice to meet you'):print(arg2, arg3, arg4)#正確范例 test(1000) # 1個(gè)位置參數(shù) test(arg1=1000) # 1個(gè)關(guān)鍵字參數(shù) test(arg1=1000, arg2='VOOOOOM') # 2個(gè)關(guān)鍵字參數(shù) test(arg2='VOOOOOM', arg1=1000) # 2個(gè)關(guān)鍵字參數(shù) test('a million', 'bereft of life', 'jump') # 3個(gè)位置參數(shù) test('a thousand', arg2='pushing up the daisies') # 1個(gè)位置參數(shù),1個(gè)關(guān)鍵字參數(shù)#錯(cuò)誤范例 test() # 缺少一個(gè)參數(shù) test(voltage=5.0, 'dead') # 非關(guān)鍵字參數(shù)在關(guān)鍵字參數(shù)后面 test(110, voltage=220) # 一個(gè)參數(shù)傳了多個(gè)值 test(arg5='John Cleese') # 對(duì)不存在的參數(shù)傳值

為了確保可讀性和運(yùn)行效率,我們可以對(duì)每個(gè)參數(shù),使用限制允許的參數(shù)傳遞形式,這樣開(kāi)發(fā)者只需查看函數(shù)定義即可確定參數(shù)項(xiàng)是僅按位置、按位置也按關(guān)鍵字,還是僅按關(guān)鍵字傳遞。

方法就是用/和*作為分隔符,把三種傳遞方法的參數(shù)分隔開(kāi)來(lái)。

def function(arg1, arg2, /, arg3, arg4, *, arg5, arg6):pass

如上的函數(shù),arg1和arg2是僅限位置參數(shù),arg3和arg4是位置或關(guān)鍵字參數(shù)都行,arg5和arg6則是僅限關(guān)鍵字參數(shù)。

最后則是官方對(duì)于函數(shù)參數(shù)給出的指導(dǎo):

  • 如果你希望形參名稱(chēng)對(duì)用戶(hù)來(lái)說(shuō)不可用,則使用僅限位置形參。 這適用于形參名稱(chēng)沒(méi)有實(shí)際意義,以及當(dāng)你希望強(qiáng)制規(guī)定調(diào)用時(shí)的參數(shù)順序,或是需要同時(shí)收受一些位置形參和任意關(guān)鍵字形參等情況。

  • 當(dāng)形參名稱(chēng)有實(shí)際意義,以及顯式指定形參名稱(chēng)可使函數(shù)定義更易理解,或者當(dāng)你想要防止用戶(hù)過(guò)于依賴(lài)傳入?yún)?shù)的位置時(shí),則使用僅限關(guān)鍵字形參

  • 對(duì)于 API 來(lái)說(shuō),使用僅限位置形參可以防止形參名稱(chēng)在未來(lái)被修改時(shí)造成破壞性的 API 變動(dòng)。

總結(jié)

以上是生活随笔為你收集整理的python函数参数那些事,关键字参数与位置参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。