1.在定義有默認參數(shù)的函數(shù)時,需要注意以下: 必傳參數(shù)必須在前面,默認參數(shù)在后;

創(chuàng)新互聯(lián)公司于2013年成立,先為貴州等服務建站,貴州等地企業(yè),進行企業(yè)商務咨詢服務。為貴州企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
備注:python為了簡化函數(shù)的調(diào)用,提供了默認參數(shù)機制,這樣在調(diào)用函數(shù)時,就可以省略最后一個參數(shù)不寫;設(shè)置何種參數(shù)為默認參數(shù)?一般來說,將參數(shù)值變化小的設(shè)置為默認參數(shù)。
2. 若參數(shù)為列表,且有默認值
2.1若調(diào)用方法時傳該參數(shù),則沒有問題
2.2 若調(diào)用方法時不傳該參數(shù),則有問題 ,問題是:每次調(diào)用該方法時,該參數(shù)不是創(chuàng)建方法時的默認值,而是多次調(diào)用被修改后的列表。
所謂缺省參數(shù),在定義函數(shù)時,可以給某個參數(shù)指定一個默認值,具有默認值的參數(shù)就叫做缺省參數(shù)。調(diào)用函數(shù)時,如果沒有傳入缺省參數(shù)的值,則在函數(shù)內(nèi)部使用定義函數(shù)時指定的參數(shù)默認值。
缺省參數(shù)的作用:
函數(shù)的缺省參數(shù),將常見的值設(shè)置為參數(shù)的缺省值,從而簡化函數(shù)的調(diào)用。
例如:對列表排序的方法
執(zhí)行結(jié)果:
在參數(shù)后使用賦值語句,可以指定參數(shù)的缺省值。
不設(shè)置缺省參數(shù):
執(zhí)行結(jié)果:張三 是 男生
# 假設(shè)班上的男生比女生多,我們不傳遞True這個參數(shù),讓性別默認是男生
設(shè)置缺省參數(shù):
執(zhí)行結(jié)果:
提示:
1. 缺省參數(shù),需要使用最常見的值作為默認值。
2. 如果一個參數(shù)的值不能確定,則不應該設(shè)置默認值,具體的數(shù)值在調(diào)用函數(shù)時,由外界傳遞。
一句話講在定義函數(shù)時怎樣指定函數(shù)的缺省參數(shù)的默認值,在形參后面跟上一個等號,等號后面跟上參數(shù)的默認值就可以了。可以看以上案例。
必須保證帶有默認值的缺省參數(shù)在參數(shù)列表末尾。
所以,以下定義是錯的:
PyCharm在錯誤的參數(shù)下面會有一個波浪線提示,告訴你要么給它挪到缺省參數(shù)前面,要么它也變成帶有默認值的缺省參數(shù)。
在調(diào)用函數(shù)時,如果有多個缺省參數(shù),需要指定參數(shù)名,這樣解釋器才能能夠知道參數(shù)的對應關(guān)系。
執(zhí)行結(jié)果:
4.7.1. 默認參數(shù)值
最常用的一種形式是為一個或多個參數(shù)指定默認值。這會創(chuàng)建一個可以使用比定義是允許的參數(shù)更少的參數(shù)調(diào)用的函數(shù),例如:
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)
這個函數(shù)可以通過幾種不同的方式調(diào)用:
只給出必要的參數(shù):
ask_ok('Do you really want to quit?')
給出一個可選的參數(shù):
ask_ok('OK to overwrite the file?', 2)
或者給出所有的參數(shù):
ask_ok('OK to overwrite the file?', 2, 'Come on, only yes or no!')
這個例子還介紹了 in 關(guān)鍵字。它測定序列中是否包含某個確定的值。
默認值在函數(shù) 定義 作用域被解析,如下所示:
i = 5
def f(arg=i):
print(arg)
i = 6
f()
將會輸出 5。
重要警告: 默認值只被賦值一次。這使得當默認值是可變對象時會有所不同,比如列表、字典或者大多數(shù)類的實例。例如,下面的函數(shù)在后續(xù)調(diào)用過程中會累積(前面)傳給它的參數(shù):
def f(a, L=[]):
L.append(a)
return L
print(f(1))
print(f(2))
print(f(3))
這將輸出:
[1]
[1, 2]
[1, 2, 3]
如果你不想讓默認值在后續(xù)調(diào)用中累積,你可以像下面一樣定義函數(shù):
def f(a, L=None):
if L is None:
L = []
L.append(a)
return L
本文名稱:python中函數(shù)默認值,python變量默認值
當前網(wǎng)址:http://chinadenli.net/article7/dsgjgij.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站策劃、響應式網(wǎng)站、網(wǎng)頁設(shè)計公司、網(wǎng)站改版、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)