日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Python初識:函數的參數

來源: 責編: 時間:2023-11-08 17:02:44 276觀看
導讀哈嘍,大家好,我是了不起。今天給大家帶來python函數的參數。一、函數參數的分類函數的參數分為兩類:形參及實參。形參:形參是在創建過程中聲明的參數,如果不給形參傳入特定的實參,形參就沒有實際的意義 實參:實參是在函數的

哈嘍,大家好,我是了不起。今天給大家帶來python函數的參數。VEf28資訊網——每日最新資訊28at.com

VEf28資訊網——每日最新資訊28at.com

一、函數參數的分類

函數的參數分為兩類:形參及實參。VEf28資訊網——每日最新資訊28at.com

形參:形參是在創建過程中聲明的參數,如果不給形參傳入特定的實參,形參就沒有實際的意義 實參:實參是在函數的調用過程中傳入的參數,這個參數具有實際意義,具有具體的數據類型。VEf28資訊網——每日最新資訊28at.com

舉例:VEf28資訊網——每日最新資訊28at.com

def fn(n1,n2):  # 在此過程中定義的參數就是形參    print(n1 + n2)fn(10,20)  # 在此過程中傳入的變量就是實參

二、形參是對實參的值拷貝

形參與實參可以重名,但是其表示的是兩個變量。VEf28資訊網——每日最新資訊28at.com

舉例:VEf28資訊網——每日最新資訊28at.com

def fn(num1):    print(num1)    num1 = 20    print(num1)num1 = 10fn(num1)print(num1)
  • 對于不可變類型:參考上例,當 num1 的值在函數的內部進行重新賦值時,在外部進行重新打印,打印的是原來的值,原因是在參數內部進行了形參的重指向,實參的值沒有發生改變。
  • 對于可變類型:參考上例,num1 變為可變類型,當 num1 的值在內部使用append()方法進行添加元素時,在函數外打印 num1 ,打印的是添加后的列表,因為沒有進行重指向,實參及形參指向的是同一個id

三、實參的分類

實參可以分為:位置實參及關鍵字實參。VEf28資訊網——每日最新資訊28at.com

位置實參:根據位置進行參數的傳遞。VEf28資訊網——每日最新資訊28at.com

舉例:VEf28資訊網——每日最新資訊28at.com

#Python學習交流:711312441def fn(a,b,c):    print(a)    print(b)    print(c)fn(1,2,3)

像上方這樣傳入參數時,實參的傳入是按照參數的位置進行傳遞的,如果改變實參的位置,那么傳入參數時就會改變傳給形參的值,這樣傳入參數時的參數就叫做位置實參:VEf28資訊網——每日最新資訊28at.com

 fn(a=1,b=2,c=3)

像上方函數的調用這樣,如果在調用函數時指名道姓的傳入參數,那么不論實參的位置如何變化,形參的得到的值都不會發生變化,這種形式的實參就叫做關鍵字實參。VEf28資訊網——每日最新資訊28at.com

注:VEf28資訊網——每日最新資訊28at.com

  • 位置實參是一定按照位置順序進行參數的傳遞的,如果傳遞實參時,實參的順序發生變化,那么形參的到的值也會發生變化。
  • 關鍵字實參采用的是指明道姓的賦值,所以實參進行位置變化時不會改變形參接收的值
  • 在既有關鍵字實參,又有位置實參時,肯定是先進行位置參數的傳值,再進行關鍵字實參的傳值(位置參數在前,關鍵字參數在后)

四、形參的分類

形參的分類可以分為六種:VEf28資訊網——每日最新資訊28at.com

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

實例:VEf28資訊網——每日最新資訊28at.com

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

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

實例中,在 * 號之前統稱為位置形參,位置形參可以由位置實參及關鍵字實參進行傳值。VEf28資訊網——每日最新資訊28at.com

  • 不帶默認值的位置形參:不帶有默認值的位置形參必須要實參進行傳值,如果實參不傳值就會報錯
  • 帶有默認值的位置形參:帶有默認值的關鍵字位置實參可以用實參進行傳值,也可以不使用實參進行傳值,不使用實參進行傳值時,使用默認值作為其值

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

實例中 * 以后的參數都是關鍵字形參,在使用關鍵字形參時,必須使用關鍵字實參進行傳值,不使用會報錯。VEf28資訊網——每日最新資訊28at.com

  • 不帶默認值的關鍵字形參:不帶有默認值的關鍵字形參必須使用關鍵字實參進行傳值,如果不傳參數就會報錯
  • 帶有默認值的關鍵字形參:帶有默認值的關鍵字形參可以用關鍵字實參進行傳值,也可以不傳值,不傳值時使用默認值作為其值。

3.可變長度的形參:

可變長度位置形參:VEf28資訊網——每日最新資訊28at.com

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

可變長度的關鍵字形參:VEf28資訊網——每日最新資訊28at.com

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

形參聲明時,其聲明順序是有規定的,順序為:VEf28資訊網——每日最新資訊28at.com

無默認值位置形參 --> 有關鍵字位置形參 --> 可變長度的位置形參 --> 無默認值的關鍵字形參 --> 有默認值的關鍵字形參 --> 可變長度的關鍵字形參VEf28資訊網——每日最新資訊28at.com

常用的參數列表類型:VEf28資訊網——每日最新資訊28at.com

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

在使用形參時要按照位置進行傳參,即使是有關鍵字也要盡量按照位置進行傳參,這樣更加清晰。VEf28資訊網——每日最新資訊28at.com

五、打散機制

在使用可變長形參時,當傳入的值多余需要的值時會把多余的參數放進可變長位置形參 及 可變長關鍵字形參,但是如果直接傳入一個元組及字典中如何直接將其變為元組及字典呢?VEf28資訊網——每日最新資訊28at.com

此時需要使用 * 及 ** 的打散機制*單列容器 會打散單列容器。VEf28資訊網——每日最新資訊28at.com

**雙列容器 會打散雙列容器:VEf28資訊網——每日最新資訊28at.com

print(*(a,b,c))  --->  (a b c)print(**{a:1,b:2})  ---> {a:1,b:2}

好了,今天就介紹到這兒。VEf28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-17777-0.htmlPython初識:函數的參數

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 使用 Gorm 進行事務和錯誤處理

下一篇: 有趣的 CSS 數學函數,你學會了嗎?

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 罗平县| 如东县| 镶黄旗| 广南县| 石柱| 伊金霍洛旗| 阿克陶县| 永顺县| 抚顺县| 荣昌县| 杭锦后旗| 重庆市| 阿克陶县| 葫芦岛市| 枝江市| 甘洛县| 河北省| 玉环县| 化州市| 天全县| 杨浦区| 五莲县| 西充县| 宁远县| 大关县| 绥德县| 稻城县| 富民县| 安乡县| 文登市| 河西区| 甘孜| 田林县| 方正县| 龙胜| 丰都县| 延边| 滁州市| 岑巩县| 元朗区| 龙游县|