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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python 函数调用 不允许关键字参数_你所不知道的Python|函数参数的演进之路

發布時間:2025/4/17 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 函数调用 不允许关键字参数_你所不知道的Python|函数参数的演进之路 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:你所不知道的Python|函數參數的演進之路

函數參數處理機制是Python中一個非常重要的知識點,隨著Python的演進,參數處理機制的靈活性和豐富性也在不斷增加,使得我們不僅可以寫出簡化的代碼,也能處理復雜的調用。

關鍵字參數

調用時指定參數的名稱,且與函數聲明時的參數名稱一致。

關鍵字參數是Python函數中最基礎也最常見的,我們寫一個記賬的函數,參數是需要記錄的時間和金額。

這里的amount參數就是一個關鍵字參數,關鍵字參數支持兩種調用方式:

位置調用

關鍵字調用

位置調用,就是按參數的位置進行調用,例如傳入兩個參數,第一個是字符串2018-07-06,第二個是整數10,那么這兩個參數會被分別賦予date和amount變量,如果順序反過來,則這兩個參數分別賦予amount和date變量。

關鍵字調用,可以忽略參數順序,直接指定參數。

僅限關鍵字參數

我們定義一個Person類,并實現它的__init__方法

當初始化這個類的時候,我們可以使用關鍵字調用,也可以使用位置調用。

對比上面兩種方式,我們會發現參數多的時候通過關鍵字指定參數不僅更加清晰,也更具有可讀性。如果我們希望函數只允許關鍵字調用,該如何做呢?Python 3.0中,引入了一種新的僅限關鍵字參數,能實現我們的需求。

下面將age以后的參數修改為只允許關鍵字調用,定義函數時想指定僅限關鍵字參數,要把它們放到前面有星號的參數后面,在Python中有星號的參數是可變參數的意思,如果不想支持可變參數,可以在參數中放一個星號作為分割。

普通參數和僅限關鍵字參數中間由一個星號隔離開,星號以后的都是僅限關鍵字參數,只可以通過關鍵字指定,而不能通過位置指定。

參數默認值

在函數聲明時,指定參數默認值,調用時不傳入參數則使用默認值,相當于可選參數。

上面代碼中沒有傳入amount參數,所以amount直接被置為默認值0。有一點需要注意的是,默認參數需要設置在必選參數后面,并且默認參數既可以通過位置調用,也可以通過關鍵字調用。

參數默認值既支持關鍵字參數,也支持僅限關鍵字參數。

可變長參數

“可變長”顧名思義是允許在調用時傳入多個參數,可變長參數適用于參數數量不確定的場景,可變參數有兩種,一種是關鍵字可變長參數,另一種是非關鍵字可變長參數。

非關鍵字可變長參數的寫法是在參數名前加一個星號,Python會將這些多出來的參數的值放入一個元組中,由于元組中只有參數值而沒有參數名稱,所以是非關鍵字參數。

關鍵字可變長參數的寫法是在參數名前加兩個星號,Python會將這些多出來的參數的值放入一個字典中,由于字典中只有參數值而沒有參數名稱,所以是關鍵字參數。

函數注解

Python 3中為函數定義增加的另一個新功能是函數注解,所謂函數注解,就是可以在函數參數和返回值上添加任意的元數據。

用create_person方法舉例,可以看到在每個參數后面都跟了一個參數類型,在函數后面則是返回值類型,函數注解可以用在文檔編寫、類型檢查中,在支持函數注解的IDE中,如果傳入參數和返回的類型不符合函數注解中的類型,IDE會提示錯誤。

但是函數注解只是一個元數據,Python解釋器執行時候并不會去檢查類型,所以下面這種情況也是合法的。

Person(name=123, age='John') # 并不會報錯

總結

Python有著非常好入門的特點,但是隨著語言本身的演進,很多高級功能也在持續加入,用好這些功能可以使我們的Python代碼擁有更高的可讀性,適應更加復雜的應用場景。返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的python 函数调用 不允许关键字参数_你所不知道的Python|函数参数的演进之路的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。