最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中的關鍵字參數(shù)*args和**kwargs詳解

 更新時間:2023年11月03日 10:08:36   作者:驚瑟  
這篇文章主要介紹了python中的關鍵字參數(shù)*args和**kwargs詳解,在定義類或函數(shù)時,有時候會用到*args和**kwargs,前者叫位置參數(shù),后者叫關鍵字參數(shù),需要的朋友可以參考下

一、使用場景

在定義類或函數(shù)時,以下場景會用到*args和**kwargs,前者叫位置參數(shù),后者叫關鍵字參數(shù)

  1. 不確定傳入?yún)?shù)的數(shù)量或形式
  2. 不關心傳入?yún)?shù)的數(shù)量或形式(此時該類或函數(shù)多作為一個中間件的角色,接收參數(shù)后只是做了一些預處理,最后將這些參數(shù)傳遞給其他類或函數(shù)做進一步處理,如裝飾器)

二、使用方法

基本使用:

def receive_args(*args, **kwargs):
    print(f'args type is: {type(args)}, value is: {args}')
    print(f'kargs type is: {type(kwargs)}, value is: {kwargs}')

if __name__ == '__main__':
    receive_args(0,name='jyz')

輸出:

args type is: <class 'tuple'>, value is: (0,)
kargs type is: <class 'dict'>, value is: {'name': 'jyz'}

由此我們得出:args本質是一個tuple,kwargs本質是dict,值得注意的是,*是在定義函數(shù)的形式參數(shù)時用來標志參數(shù)的類型(位置參數(shù)還是關鍵字參數(shù)),在函數(shù)體內(nèi)要拿到真正的參數(shù)需要將*去掉。

傳入多個參數(shù)

def receive_args(*args, **kwargs):
    print(f'args type is: {type(args)}, args[0] is: {args[0]}, args[1 ] is: {args[1]},args[2] is: {args[2]}')
    print(f"kwargs type is: {type(kwargs)}, name is: {kwargs['name']}, gender is: {kwargs['gender']}")

if __name__ == '__main__':
    receive_args(0,1,2,name='jyz',gender='male')

輸出:

args type is: <class 'tuple'>, args[0] is: 0, args[1 ] is: 1,args[2] is: 2
kwargs type is: <class 'dict'>, name is: jyz, gender is: male

由于args本質是一個tuple,kwargs本質是dict,因此可以在函數(shù)中對它們直接進行操作。

容易出錯的地方

def receive_args(*args, **kwargs):
    print('args is: ',args)
    print('kwargs is: ',kwargs)
    
if __name__ == '__main__':
    a = 0
    b = 1
    d = {'name':'jyz','gender':'male'}
    receive_args(a,b,d)

輸出:

args is:  (0, 1, {'name': 'jyz', 'gender': 'male'})
kwargs is:  {}

出乎意料的是,receive_args并未將d當做kwargs,而是作為args。而如果想要將字典類型作為關鍵字變量傳到函數(shù)中去,需要在變量前使用**做額外的標志:

def receive_args(*args, **kwargs):
    print('args is: ',args)
    print('kwargs is: ',kwargs)

if __name__ == '__main__':
    a = 0
    b = 1
    d = {'name':'jyz','gender':'male'}
    receive_args(a,b,**d) # d前用**做標志

輸出:

args is:  (0, 1)
kwargs is:  {'name': 'jyz', 'gender': 'male'}

三、結論

  1. args本質是一個tuple,kwargs本質是dict;
  2. 傳入關鍵字參數(shù)時,要么使用key=value形式傳遞;要么先定義dict再使用**dict傳遞。

到此這篇關于python中的關鍵字參數(shù)*args和**kwargs詳解的文章就介紹到這了,更多相關python中的*args和**kwargs內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用IPython下的Net-SNMP來管理類UNIX系統(tǒng)的教程

    使用IPython下的Net-SNMP來管理類UNIX系統(tǒng)的教程

    這篇文章主要介紹了使用IPython下的Net-SNMP來管理類UNIX系統(tǒng)的教程,本文來自于IBM官方網(wǎng)站技術文檔,需要的朋友可以參考下
    2015-04-04
  • Python模塊的加載講解

    Python模塊的加載講解

    今天小編就為大家分享一篇關于Python模塊的加載講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • python之pkl文件的用法及說明

    python之pkl文件的用法及說明

    這篇文章主要介紹了python之pkl文件的用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python+matplotlib繪制多子圖的方法詳解

    Python+matplotlib繪制多子圖的方法詳解

    Matplotlib是Python中最受歡迎的數(shù)據(jù)可視化軟件包之一,它是?Python常用的2D繪圖庫,同時它也提供了一部分3D繪圖接口。本文將詳細介紹如何通過Matplotlib繪制多子圖,需要的可以參考一下
    2022-07-07
  • Python類和對象的定義與實際應用案例分析

    Python類和對象的定義與實際應用案例分析

    這篇文章主要介紹了Python類和對象的定義與實際應用,結合三個具體案例形式分析了Python面向對象程序設計中類與對象的定義、應用、設計模式等相關操作技巧,需要的朋友可以參考下
    2018-12-12
  • 基于PyQt實現(xiàn)多頁面切換的詳細教程

    基于PyQt實現(xiàn)多頁面切換的詳細教程

    在實際桌面應用開發(fā)中,頁面切換不僅僅是簡單的按鈕切換,往往還涉及到頁面間的數(shù)據(jù)傳遞、動態(tài)內(nèi)容更新、以及更復雜的UI布局,本文將基于PyQt的QStackedWidget,詳細講解如何實現(xiàn)多頁面切換,需要的朋友可以參考下
    2025-12-12
  • 讓你一文弄懂Pandas文本數(shù)據(jù)處理

    讓你一文弄懂Pandas文本數(shù)據(jù)處理

    文本數(shù)據(jù)具有數(shù)據(jù)維度高、數(shù)據(jù)量大且語義復雜等特點,是一種較為復雜的數(shù)據(jù)類型,下面這篇文章主要給大家介紹了關于Pandas文本數(shù)據(jù)處理的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-08-08
  • Python實現(xiàn)希爾排序算法的原理與用法實例分析

    Python實現(xiàn)希爾排序算法的原理與用法實例分析

    這篇文章主要介紹了Python實現(xiàn)希爾排序算法,簡單講述了希爾排序的原理并結合具體實例形式分析了Python希爾排序的具體實現(xiàn)方法與使用技巧,需要的朋友可以參考下
    2017-11-11
  • 教你用python編寫腳本實現(xiàn)自動簽到

    教你用python編寫腳本實現(xiàn)自動簽到

    這篇文章主要介紹了教你怎樣用python編寫腳本實現(xiàn)自動簽到,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • python實現(xiàn)360的字符顯示界面

    python實現(xiàn)360的字符顯示界面

    這篇文章主要介紹了python實現(xiàn)360的字符顯示界面示例,需要的朋友可以參考下
    2014-02-02

最新評論

新龙县| 阳江市| 理塘县| 新津县| 托克托县| 茌平县| 南木林县| 隆回县| 历史| 新泰市| 富蕴县| 山东省| 泸溪县| 白朗县| 临朐县| 开江县| 泸水县| 尉氏县| 萨嘎县| 眉山市| 报价| 都匀市| 偏关县| 富蕴县| 新田县| 盐津县| 九龙县| 金湖县| 汽车| 南溪县| 定兴县| 武穴市| 浦东新区| 吉安县| 冀州市| 九龙县| 无极县| 淮安市| 钦州市| 塔城市| 夏河县|