国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python 函數中的參數類型

2020-02-15 21:15:20
字體:
來源:轉載
供稿:網友

1.前言

Python中函數的參數類型比較豐富,比如我們經常見到*args**kwargs作為參數。初學者遇到這個多少都有點懵逼,今天我們來把Python中的函數參數進行分析和總結。

2.Python 中的函數參數

在Python中定義函數參數有5種類型,我們來一一演示它們。

2.1必選參數

必須參數是最基本的參數類型,當你在Python函數中定義一個必選參數時,每次調用都必須給予賦值,否則將報錯。

>>>def fun(a):    print("a=",a)   >>>fun('felord.cn')a= felord.cn>>>fun()Traceback (most recent call last): File "<input>", line 1, in <module>TypeError: fun() missing 1 required positional argument: 'a'

2.2默認參數

默認參數就是擁有一個默認值的參數。

>>>def fun(a="felord.cn"):    print("a=",a)   >>>fun()a= felord.cn>>>fun("Felordcn")a= Felordcn

我們來看看下面這種情況:

>>>def fun(a=[]):    a.append("foo")    print("a=",a)  >>>fun()a= ['foo']>>>fun()a= ['foo', 'foo']>>>fun()a= ['foo', 'foo', 'foo']

這是什么情況?每次調用參數a都“記憶”了原來的值,這是因為Python函數在定義的時候,默認參數a的值就被初始化為[],其實a也是一個變量,它指向對象[],每次調用該函數改變a的值則會改變a指針指向的對象的值。當你將a的默認值定義為一個不可變對象時就不會發生這種情況,你可以試試我說的。

所以,定義默認參數要牢記一點:默認參數必須指向不變對象!

2.3可變參數

有很多場景我們不確定參數的個數,也就是說參數是可變的。首先你可能會想到使用list或者tuple(元組)來封裝多個參數,但是如何才能從函數的語義上看出這是一個可變參數呢?所以我們通過一個前綴標識*來聲明該參數是一個可變參數,通常記作*args,你也可以記作*paramsargs會把所有的參數收納成一個tuple。我們來演示一個求和的函數:

>>>def calc(*args):    total=0    for i in args:      total+=i    return total     >>>calc(1)1>>>calc(1,2,3,4,5)15>>>calc()0

2.4關鍵字參數

關鍵字參數也是實現任意個數參數的一種方式,區別在于可變參數收納為一個tuple而關鍵字參數將我們傳入參數的參數名和對應的值收納為一個dict(字典)。通常記作**kwargs以區別于可變參數,實際上kw就是keyword

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 普安县| 图木舒克市| 平果县| 宾阳县| 柘城县| 商丘市| 句容市| 西城区| 南安市| 昌都县| 恭城| 宝鸡市| 合阳县| 蕲春县| 岳阳县| 安阳市| 南郑县| 盐池县| 霍山县| 河东区| 日喀则市| 泾川县| 邹城市| 屯昌县| 宁南县| 定州市| 东辽县| 焦作市| 大庆市| 建平县| 永济市| 闽侯县| 襄樊市| 太谷县| 永善县| 浠水县| 城口县| 会宁县| 台北市| 政和县| 鹤壁市|