python 預設引數值 預設引數值

2021-10-25 19:30:15 字數 1209 閱讀 8718

該樓層疑似違規已被系統摺疊 隱藏此樓檢視此樓

最常用的一種形式是為乙個或多個引數指定預設值。這會建立乙個可以使用比定義時允許的引數更少的引數呼叫的函式,例如:

def ask_ok(prompt, retries=4, complaint='yes or no, please!'):

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 oserror('uncooperative user')

print(complaint)

這個函式可以通過幾種不同的方式呼叫:

只給出必要的引數: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!')

這個例子還介紹了 in 關鍵字。它測定序列中是否包含某個確定的值。

預設值在函式 定義 作用域被解析,如下所示:

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

i = 5

def f(arg=i):

print(arg)

i = 6

f()將會輸出 5。

重要警告: 預設值只被賦值一次。這使得當預設值是可變物件時會有所不同,比如列表、字典或者大多數類的例項。例如,下面的函式在後續呼叫過程中會累積(前面)傳給它的引數:

def f(a, l=):

return l

print(f(1))

print(f(2))

print(f(3))

這將輸出:

[1][1, 2]

[1, 2, 3]

如果你不想讓預設值在後續呼叫中累積,你可以像下面一樣定義函式:

def f(a, l=none):

if l is none:

l =

return l

Python 預設引數值

預設引數值 python 預設引數值,對於一些函式來說,你可能為希望使一些引數可選並使用預設的值,以避免使用者不想為他們提供值的情況。預設引數值可以有效幫助解決這一情況。你可以通過在函式定義時附加乙個賦值運算子 來為引數指定預設引數值。要注意到,python預設引數值應該是常數。更確切地說,預設引數...

Python函式預設引數值

python的函式機制提供了可選引數的功能,可選引數需要放在引數列表的後幾個引數。當呼叫這些函式時,如果不想設定這些引數,就可以不用設定而直接使用函式定義的時候設定的引數預設值。同樣的,呼叫函式的時候也可以重新設定引數,這將覆蓋預設設定的引數。def func x,y 2 print x y fun...

python 預設引數 Python預設引數有坑?

最近有小夥伴在面試中遇到了 關於函式預設引數的坑 的題目,少數夥伴對此問題理得不是太清楚,今天匯智妹請到匯智動力高階教師鄧老師為大家詳細講解一下,幫助不太清楚的小夥伴清晰的梳理一遍。鄧老師本次主要從以下三點來講解 什麼是預設引數?函式預設引數的坑是什麼?函式預設引數為什麼會有坑?一 什麼是預設引數 ...