91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python默認參數調用方法解析

發布時間:2020-10-11 09:00:33 來源:腳本之家 閱讀:146 作者:郭雪原 欄目:開發技術

這篇文章主要介紹了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 = 5
def f(arg=i):
  print(arg)
i = 6
f()

打印為5

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

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

print(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

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

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿拉尔市| 越西县| 吉林市| 崇礼县| 江达县| 新蔡县| 大安市| 吴忠市| 宣城市| 鱼台县| 临潭县| 香格里拉县| 拜城县| 丹寨县| 会同县| 江源县| 尖扎县| 广宁县| 长白| 都匀市| 茶陵县| 永安市| 光山县| 介休市| 揭阳市| 大丰市| 班戈县| 准格尔旗| 永川市| 阿尔山市| 长沙市| 康马县| 鄂尔多斯市| 吴旗县| 隆化县| 长宁区| 封开县| 荔波县| 石泉县| 龙胜| 潼南县|