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

首頁 > 編程 > Python > 正文

理解Python中函數(shù)的參數(shù)

2020-02-23 00:52:32
字體:
供稿:網(wǎng)友

 定義函數(shù)的時候,我們把參數(shù)的名字和位置確定下來,函數(shù)的接口定義就完成了。對于函數(shù)的調(diào)用者來說,只需要知道如何傳遞正確的參數(shù),以及函數(shù)將返回什么樣的值就夠了,函數(shù)內(nèi)部的復雜邏輯被封裝起來,調(diào)用者無需了解。

Python的函數(shù)定義非常簡單,但靈活度卻非常大。除了正常定義的必選參數(shù)外,還可以使用默認參數(shù)、可變參數(shù)和關鍵字參數(shù),使得函數(shù)定義出來的接口,不但能處理復雜的參數(shù),還可以簡化調(diào)用者的代碼。
默認參數(shù)

我們?nèi)砸跃唧w的例子來說明如何定義函數(shù)的默認參數(shù)。先寫一個計算x2的函數(shù):

def power(x):  return x * x

當我們調(diào)用power函數(shù)時,必須傳入有且僅有的一個參數(shù)x:

>>> power(5)25>>> power(15)225

現(xiàn)在,如果我們要計算x3怎么辦?可以再定義一個power3函數(shù),但是如果要計算x4、x5……怎么辦?我們不可能定義無限多個函數(shù)。

你也許想到了,可以把power(x)修改為power(x, n),用來計算xn,說干就干:

def power(x, n):  s = 1  while n > 0:    n = n - 1    s = s * x  return s

對于這個修改后的power函數(shù),可以計算任意n次方:

>>> power(5, 2)25>>> power(5, 3)125

但是,舊的調(diào)用代碼失敗了,原因是我們增加了一個參數(shù),導致舊的代碼無法正常調(diào)用:

>>> power(5)Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: power() takes exactly 2 arguments (1 given)

這個時候,默認參數(shù)就排上用場了。由于我們經(jīng)常計算x2,所以,完全可以把第二個參數(shù)n的默認值設定為2:

def power(x, n=2):  s = 1  while n > 0:    n = n - 1    s = s * x  return s

這樣,當我們調(diào)用power(5)時,相當于調(diào)用power(5, 2):

>>> power(5)25>>> power(5, 2)25

而對于n > 2的其他情況,就必須明確地傳入n,比如power(5, 3)。

從上面的例子可以看出,默認參數(shù)可以簡化函數(shù)的調(diào)用。設置默認參數(shù)時,有幾點要注意:

一是必選參數(shù)在前,默認參數(shù)在后,否則Python的解釋器會報錯(思考一下為什么默認參數(shù)不能放在必選參數(shù)前面);

二是如何設置默認參數(shù)。

當函數(shù)有多個參數(shù)時,把變化大的參數(shù)放前面,變化小的參數(shù)放后面。變化小的參數(shù)就可以作為默認參數(shù)。

使用默認參數(shù)有什么好處?最大的好處是能降低調(diào)用函數(shù)的難度。

舉個例子,我們寫個一年級小學生注冊的函數(shù),需要傳入name和gender兩個參數(shù):

def enroll(name, gender):  print 'name:', name  print 'gender:', gender            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 通化市| 六盘水市| 东山县| 万盛区| 格尔木市| 英德市| 赤水市| 阿鲁科尔沁旗| 宝坻区| 高雄市| 台安县| 涿州市| 南丹县| 巩义市| 中方县| 彰武县| 威宁| 白河县| 墨江| 积石山| 崇阳县| 阿图什市| 保山市| 富锦市| 铜梁县| 丹凤县| 报价| 金秀| 深州市| 秦皇岛市| 张北县| 大方县| 昭通市| 罗田县| 乐山市| 民权县| 德昌县| 白河县| 兴义市| 武隆县| 通州市|