python默認(rèn)參數(shù)調(diào)用方法解析
這篇文章主要介紹了python默認(rèn)參數(shù)調(diào)用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
最常見(jiàn)的一種形式是的是為一個(gè)或者多個(gè)參數(shù)指定默認(rèn)值,這會(huì)創(chuàng)建一個(gè)可以使用比定義時(shí)允許的參數(shù)更少的參數(shù)調(diào)用的函數(shù),
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)
可以用以下三種調(diào)用方式:
- 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!')
默認(rèn)值在函數(shù)定義作用域有效,因此:
i = 5 def f(arg=i): print(arg) i = 6 f()
打印為5
重要提醒:默認(rèn)參數(shù)在定義時(shí)賦值,且僅僅賦值一次,當(dāng)函數(shù)多次被調(diào)用,且并沒(méi)有提供默認(rèn)的參數(shù)值,就會(huì)從定義時(shí)賦值的地方取得值。即使函數(shù)中給默認(rèn)參數(shù)重新賦值了,下次調(diào)用還是會(huì)從定義賦值的地方取得值!當(dāng)默認(rèn)參數(shù)為可變類型的list/dict等類型時(shí),需要注意。
def f(a, L=[]): L.append(a) return L print(f(1)) print(f(2,[])) print(f(3))
輸出為:
[1]
[2]
[1,3]
如果不想讓默認(rèn)值咋后續(xù)調(diào)用中累積,可以用如下寫法:
def f(a, L=None):
if L is None:
L = []
L.append(a)
return L
假如默認(rèn)參數(shù)是可變對(duì)象,函數(shù)內(nèi)對(duì)參數(shù)的改變會(huì)影響原始對(duì)象,下次調(diào)用函數(shù)默認(rèn)參數(shù)已經(jīng)被更改
假如默認(rèn)參數(shù)是不可變對(duì)象,函數(shù)內(nèi)對(duì)參數(shù)賦值時(shí),參數(shù)會(huì)引用內(nèi)存其他地方,下次調(diào)用函數(shù)時(shí)還是會(huì)從定義時(shí)賦值的地方取值。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python函數(shù)默認(rèn)參數(shù)設(shè)置的具體方法
- python函數(shù)默認(rèn)參數(shù)使用避坑指南
- Python如何定義有默認(rèn)參數(shù)的函數(shù)
- Python新手學(xué)習(xí)函數(shù)默認(rèn)參數(shù)設(shè)置
- python 默認(rèn)參數(shù)相關(guān)知識(shí)詳解
- Python中的默認(rèn)參數(shù)實(shí)例分析
- Python進(jìn)階-函數(shù)默認(rèn)參數(shù)(詳解)
- python 默認(rèn)參數(shù)問(wèn)題的陷阱
- Python中的默認(rèn)參數(shù)詳解
- Python默認(rèn)參數(shù)的使用機(jī)制
相關(guān)文章
關(guān)于文件Permission denied解決方案(pip)
這篇文章主要介紹了文件Permission denied解決方案(pip),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Python3進(jìn)行表格數(shù)據(jù)處理的示例詳解
數(shù)據(jù)處理是一個(gè)當(dāng)下非常熱門的研究方向,通過(guò)對(duì)于大型實(shí)際場(chǎng)景中的數(shù)據(jù)進(jìn)行建模,可以用于預(yù)測(cè)下一階段可能出現(xiàn)的情況。本文就來(lái)聊聊Python3進(jìn)行表格數(shù)據(jù)處理的相關(guān)操作,需要的可以參考一下2023-03-03
Python實(shí)現(xiàn)去除列表中重復(fù)元素的方法小結(jié)【4種方法】
這篇文章主要介紹了Python實(shí)現(xiàn)去除列表中重復(fù)元素的方法,結(jié)合實(shí)例形式總結(jié)分析了Python列表去重的4種實(shí)現(xiàn)方法,涉及Python針對(duì)列表的遍歷、判斷、排序等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
python實(shí)現(xiàn)智能語(yǔ)音天氣預(yù)報(bào)
今天小編就為大家分享一篇python實(shí)現(xiàn)智能語(yǔ)音天氣預(yù)報(bào),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
python獲取服務(wù)器響應(yīng)cookie的實(shí)例
今天小編就為大家分享一篇python獲取服務(wù)器響應(yīng)cookie的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
numpy中的norm()函數(shù)求范數(shù)實(shí)例
這篇文章主要介紹了numpy中的norm()函數(shù)求范數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
Python matplotlib畫圖與中文設(shè)置操作實(shí)例分析
這篇文章主要介紹了Python matplotlib畫圖與中文設(shè)置操作,結(jié)合實(shí)例形式分析了Python使用matplotlib進(jìn)行圖形繪制及中文設(shè)置相關(guān)操作技巧,需要的朋友可以參考下2019-04-04
Django將項(xiàng)目移動(dòng)到新環(huán)境的操作步驟
本文分步驟給大家介紹Django將項(xiàng)目移動(dòng)到新環(huán)境的方法,通過(guò)圖文示例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-08-08
Python 3.x對(duì).CSV數(shù)據(jù)按任意行、列讀取的過(guò)程
這篇文章主要介紹了Python 3.x對(duì).CSV數(shù)據(jù)按任意行、列讀取的過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2022-05-05

