精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python函數形參的分類

麥辣雞腿堡 ? 來源:Python都知道 ? 作者:了不起 ? 2023-11-14 11:19 ? 次閱讀

形參的分類

形參的分類可以分為六種:

  • 帶有默認值的位置形參
  • 不帶默認值的位置形參
  • 帶有默認值的關鍵字形參
  • 不帶默認值的關鍵字形參
  • 可變長度的位置形參
  • 可變長度的關鍵字形參

實例:

def fn(a,b,c=10,*,d,e=20,**kwargs)

1、帶及不帶默認值的位置形參

實例中,在 * 號之前統稱為位置形參,位置形參可以由位置實參及關鍵字實參進行傳值。

不帶默認值的位置形參:不帶有默認值的位置形參必須要實參進行傳值,如果實參不傳值就會報錯

帶有默認值的位置形參:帶有默認值的關鍵字位置實參可以用實參進行傳值,也可以不使用實參進行傳值,不使用實參進行傳值時,使用默認值作為其值

2、帶有及不帶默認值的關鍵字形參

實例中 * 以后的參數都是關鍵字形參,在使用關鍵字形參時,必須使用關鍵字實參進行傳值,不使用會報錯

不帶默認值的關鍵字形參:不帶有默認值的關鍵字形參必須使用關鍵字實參進行傳值,如果不傳參數就會報錯

帶有默認值的關鍵字形參:帶有默認值的關鍵字形參可以用關鍵字實參進行傳值,也可以不傳值,不傳值時使用默認值作為其值。

3、可變長度的形參:

可變長度位置形參:

  • 其位置在位置形參及關鍵字形參之間,當傳入的位置實參數量多于位置形參時,多出部分的位置形參會全部存儲在可變長度的位置形參中
  • 可變長度的關鍵字形參就是例子中的 * ,只是給這個形參添加了一個名字,這個名字可以自定義,但是約定俗成的命名為 *args

可變長度的關鍵字形參:

  • 可變長度的關鍵字形參位于參數列表的末尾,當傳入的關鍵字實參多與關鍵字形參時,多出的部分就會被儲存在可變長度的關鍵字形參中,以元組進行存儲
  • 可變長度的關鍵字形參使用 ** 進行表示,此時也需要給關鍵字形參添加一個名字,這個名字可以自定義,但是約定俗成的稱為 **kwargs,以字典進行存儲

形參聲明時,其聲明順序是有規定的,順序為:

無默認值位置形參 --> 有關鍵字位置形參 --> 可變長度的位置形參 --> 無默認值的關鍵字形參 --> 有默認值的關鍵字形參 --> 可變長度的關鍵字形參

常用的參數列表類型:

-- (*args,**kwargs)

-- (a,*args)
-- (a,b=10,**kwargs)
        
-- (a,*,b,**kwargs)
-- (a,*args,b,**kwargs)

在使用形參時要按照位置進行傳參,即使是有關鍵字也要盡量按照位置進行傳參,這樣更加清晰

打散機制

在使用可變長形參時,當傳入的值多余需要的值時會把多余的參數放進可變長位置形參 及 可變長關鍵字形參,但是如果直接傳入一個元組及字典中如何直接將其變為元組及字典呢?

此時需要使用 *** 的打散機制*單列容器 會打散單列容器

**雙列容器 會打散雙列容器

print(*(a,b,c))  --- >  (a b c)
print(**{a:1,b:2})  --- > {a:1,b:2}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4306

    瀏覽量

    62431
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84453
收藏 人收藏

    評論

    相關推薦

    函數的幾種用法(3)#Python

    參數函數python
    未來加油dz
    發布于 :2023年08月24日 17:56:45

    函數的實參與

    函數定義中指定的,在未發生函數調用時不占內存,只有
    發表于 10-18 20:15

    函數,在使用函數時,為什么為變化?

    例如:void delay(uint z){uint x, y;for(x = z; x > 0; x--)for(y = 110; y > 0; y--);}我在調試時,觀察X和Z的變化情況,發現z和x的值相同,然后做相同的變化。為什么也會發生變化?
    發表于 08-19 14:13

    stm32庫函數查錯功能

    的STM32庫函數中,對于其提供了查錯機制。如下示例是我們常用的GPIO初始化函數,在函數的一開始就使用assert_param(x)對
    發表于 09-11 10:09

    函數為volatile類型,這個有什么意義?

    ((HAL_GetTick() - tickstart) < Delay){}}這是用STM32CubeMX生成的帶操作系統工程里面的一個函數,如何理解Delay前面的__IO,還望各路高手指導。
    發表于 11-23 16:44

    為什么28035的cla調用子函數,當超過2個的話,cla 就無法調用子函數?這是什么原因?

    本帖最后由 一只耳朵怪 于 2018-6-14 08:50 編輯 為什么28035的cla調用子函數,當超過2個的話,cla 就無法調用子函數
    發表于 06-13 08:25

    請問CC2541用IAR調試時函數和實參不一樣該怎么辦?

    IAR 9.30.1調試CC2541的BLE工程時出現函數調用和實參不一致的問題。
    發表于 11-11 10:42

    C語言總結_數組與函數練習題

    字符串標準處理函數介紹(string.h)、指針和數組當做函數,指針定義、函數返回指針、void類型定義指針、類型強制轉換、常量聲明、e
    的頭像 發表于 08-14 09:36 ?807次閱讀

    C語言-函數的可變形(不定形)

    這篇文章介紹C語言函數的不定參數、可變參數 ,實現printf一樣的傳效果。
    的頭像 發表于 08-14 09:58 ?2579次閱讀

    C語言-指針作為函數類型

    C語言函數里最常用就是指針傳和返回地址,特別是字符串處理中,經常需要封裝各種功能函數完成數據處理。
    的頭像 發表于 08-14 10:05 ?1826次閱讀

    數組/指針的傳問題

    自定義函數的類型,要和函數調用中傳過去的實參類型相對應
    的頭像 發表于 08-17 10:37 ?1061次閱讀

    指針進階第五站:函數指針!

    定義一個函數指針,指向的函數有兩個int并且返回一個函數指針,返回的指針指向一個有一個int
    發表于 08-17 15:58 ?518次閱讀

    C語言函數參數介紹

    C語言數組元素作函數實參 數組元素可以用作函數實參,不能用作。 C語言在用數組元素作函數實參時,把實參的值傳給
    的頭像 發表于 03-10 14:30 ?2314次閱讀

    Python 函數參數分類

    文章應該對你會有不小的幫助。 接下來是正文。 1. 參數分類 函數,在定義的時候,可以有參數的,也可以沒有參數。 從函數定義的角度來看,參數可以分為兩種: 必選參數 :調用函數時必須要
    的頭像 發表于 10-21 10:45 ?697次閱讀

    函數參數的分類有哪些

    一、函數參數的分類 函數的參數分為兩類: 及 實參
    的頭像 發表于 11-14 11:13 ?2562次閱讀