python預設引數呼叫方法解析

2022-10-03 16:33:10 字數 1150 閱讀 6760

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

def ask_ok(prompt, ret程式設計客棧ries=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 www.cppcns.comuser response')

print(reminder)

可以用以下三種呼叫方式:

預設值在函式定義作用域有效,因此:

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

假如預設引數是可變物件,函式內對引數的改變會影響原始物件,下次呼叫函式預設引數已經被更改

假如預設引數是不可變物件,函式內對引數賦值時,引數會引用記憶體其他地方,下次呼叫函nffnlstspl數時還是會從定義時賦值的地方取值。

本文標題: python預設引數呼叫方法解析

本文位址:

python 預設引數的遞迴呼叫

leetcode刷題時,看到一段 第22題 題目描述 given n pairs of parentheses,write a function to generate all combinations of well formed parentheses.for example,given n 3...

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

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

python預設引數

預設引數很有用,但使用不當,也會掉坑里。預設引數有個最大的坑,演示如下 先定義乙個函式,傳入乙個list,新增乙個end再返回 def add end l return l當你正常呼叫時,結果似乎不錯 add end 1,2,3 1,2,3,end add end x y z x y z end 當...