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

首頁 > 編程 > Python > 正文

python默認參數調用方法解析

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

這篇文章主要介紹了python默認參數調用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

最常見的一種形式是的是為一個或者多個參數指定默認值,這會創建一個可以使用比定義時允許的參數更少的參數調用的函數,

def ask_ok(prompt, retries=4, reminder='Please try again!'):  while True:    ok = input(prompt)    if ok in ('y', 'ye', 'yes'):      return True    if ok in ('n', 'no', 'nop', 'nope'):      return False    retries = retries - 1    if retries < 0:      raise ValueError('invalid user response')    print(reminder)

可以用以下三種調用方式:

ask_ok('Do you really want to quit?') ask_ok('OK to overwrite the file?', 2) ask_ok('OK to overwrite the file?', 2, 'Come on, only yes or no!')

默認值在函數定義作用域有效,因此:

i = 5def f(arg=i):  print(arg)i = 6f()

打印為5

重要提醒:默認參數在定義時賦值,且僅僅賦值一次,當函數多次被調用,且并沒有提供默認的參數值,就會從定義時賦值的地方取得值。即使函數中給默認參數重新賦值了,下次調用還是會從定義賦值的地方取得值!當默認參數為可變類型的list/dict等類型時,需要注意。

def f(a, L=[]):  L.append(a)  return Lprint(f(1))print(f(2,[]))print(f(3))

輸出為:

[1]
[2]
[1,3]

如果不想讓默認值咋后續調用中累積,可以用如下寫法:

def f(a, L=None):  if L is None:    L = []  L.append(a)  return L

假如默認參數是可變對象,函數內對參數的改變會影響原始對象,下次調用函數默認參數已經被更改

假如默認參數是不可變對象,函數內對參數賦值時,參數會引用內存其他地方,下次調用函數時還是會從定義時賦值的地方取值。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扎囊县| 三穗县| 广州市| 高陵县| 抚远县| 威宁| 泊头市| 溆浦县| 枣庄市| 宁陕县| 莎车县| 岳普湖县| 慈溪市| 百色市| 灵山县| 什邡市| 博爱县| 游戏| 五河县| 兖州市| 乌兰察布市| 鄂尔多斯市| 苍梧县| 吴江市| 浦县| 沛县| 页游| 祁连县| 永宁县| 隆尧县| 繁峙县| 雷波县| 德惠市| 广河县| 竹山县| 张家港市| 蒲江县| 明星| 双辽市| 察隅县| 德江县|