亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

寿宁县| 五莲县| 丰都县| 新竹县| 双鸭山市| 临沭县| 资溪县| 开平市| 揭西县| 新安县| 邵武市| 温宿县| 邛崃市| 普陀区| 望城县| 五大连池市| 原阳县| 留坝县| 石林| 永川市| 漾濞| 昔阳县| 响水县| 北碚区| 安多县| 壶关县| 萍乡市| 弥勒县| 麟游县| 丰台区| 平安县| 德格县| 麻城市| 枞阳县| 五寨县| 同仁县| 洛宁县| 贡觉县| 上饶市| 通渭县| 濮阳县|