后面paraTestList(a[2:])中,括號(hào)里面的a[2:]命令是指創(chuàng)建了一個(gè)包含列表a的一部分的一個(gè)副本列表。具體做法是:
成都創(chuàng)新互聯(lián)公司主營(yíng)通江網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開發(fā)公司,通江h(huán)5成都微信小程序搭建,通江網(wǎng)站營(yíng)銷推廣歡迎通江等地區(qū)企業(yè)咨詢
def
paraTestList(L):
L[0]='z'
a=['a','b','c','d']
b=a[2:]
paraTestList(b)
print(b)
具體情況如下:
1.Python的函數(shù)定義簡(jiǎn)單但靈活度大。除了正常定義的必選參數(shù)外,還可以使用默認(rèn)參數(shù)、可變參數(shù)和關(guān)鍵字參數(shù),使得函數(shù)定義出來(lái)的接口,不但能處理復(fù)雜的參數(shù),也可以簡(jiǎn)化調(diào)用者的代碼。
2.默認(rèn)參數(shù)可以簡(jiǎn)化函數(shù)的調(diào)用,設(shè)置默認(rèn)參數(shù)時(shí)要注意:一是必選參數(shù)在前,默認(rèn)參數(shù)在后,否則Python的解釋器會(huì)報(bào)錯(cuò);二是如何設(shè)置默認(rèn)參數(shù)。當(dāng)函數(shù)有多個(gè)參數(shù)時(shí),把變化大的參數(shù)放前面,變化小的參數(shù)放后面。變化小的參數(shù)就可以作為默認(rèn)參數(shù)。
3.默認(rèn)參數(shù)降低了函數(shù)調(diào)用的難度,而一旦需要更復(fù)雜的調(diào)用時(shí),又可以傳遞更多的參數(shù)來(lái)實(shí)現(xiàn)。無(wú)論是簡(jiǎn)單調(diào)用還是復(fù)雜調(diào)用,函數(shù)只需要定義一個(gè)。
4.有多個(gè)默認(rèn)參數(shù)時(shí),調(diào)用的時(shí)候,既可以按順序提供默認(rèn)參數(shù)。
4.Python函數(shù)在定義的時(shí)候,默認(rèn)參數(shù)L的值就被計(jì)算出來(lái)了,即[],因?yàn)槟J(rèn)參數(shù)L也是一個(gè)變量,它指向?qū)ο骩],每次調(diào)用該函數(shù),如果改變了L的內(nèi)容,則下次調(diào)用時(shí),默認(rèn)參數(shù)的內(nèi)容就變了,不再是函數(shù)定義時(shí)的[]了。
所謂缺省參數(shù),在定義函數(shù)時(shí),可以給某個(gè)參數(shù)指定一個(gè)默認(rèn)值,具有默認(rèn)值的參數(shù)就叫做缺省參數(shù)。調(diào)用函數(shù)時(shí),如果沒有傳入缺省參數(shù)的值,則在函數(shù)內(nèi)部使用定義函數(shù)時(shí)指定的參數(shù)默認(rèn)值。
缺省參數(shù)的作用:
函數(shù)的缺省參數(shù),將常見的值設(shè)置為參數(shù)的缺省值,從而簡(jiǎn)化函數(shù)的調(diào)用。
例如:對(duì)列表排序的方法
執(zhí)行結(jié)果:
在參數(shù)后使用賦值語(yǔ)句,可以指定參數(shù)的缺省值。
不設(shè)置缺省參數(shù):
執(zhí)行結(jié)果:張三 是 男生
# 假設(shè)班上的男生比女生多,我們不傳遞True這個(gè)參數(shù),讓性別默認(rèn)是男生
設(shè)置缺省參數(shù):
執(zhí)行結(jié)果:
提示:
1. 缺省參數(shù),需要使用最常見的值作為默認(rèn)值。
2. 如果一個(gè)參數(shù)的值不能確定,則不應(yīng)該設(shè)置默認(rèn)值,具體的數(shù)值在調(diào)用函數(shù)時(shí),由外界傳遞。
一句話講在定義函數(shù)時(shí)怎樣指定函數(shù)的缺省參數(shù)的默認(rèn)值,在形參后面跟上一個(gè)等號(hào),等號(hào)后面跟上參數(shù)的默認(rèn)值就可以了??梢钥匆陨习咐?。
必須保證帶有默認(rèn)值的缺省參數(shù)在參數(shù)列表末尾。
所以,以下定義是錯(cuò)的:
PyCharm在錯(cuò)誤的參數(shù)下面會(huì)有一個(gè)波浪線提示,告訴你要么給它挪到缺省參數(shù)前面,要么它也變成帶有默認(rèn)值的缺省參數(shù)。
在調(diào)用函數(shù)時(shí),如果有多個(gè)缺省參數(shù),需要指定參數(shù)名,這樣解釋器才能能夠知道參數(shù)的對(duì)應(yīng)關(guān)系。
執(zhí)行結(jié)果:
1:
簡(jiǎn)單的函數(shù)演示:
這個(gè)enumerate 函數(shù)挺有意思,用一次就愛不釋手,可以自己去敲敲代碼感受一下。
2:上面僅僅是簡(jiǎn)單的一個(gè)展示已經(jīng)存在的書籍名稱,加入我新增了一本書,新增完成之后,我需要再show一下目前我有那些書呢?
如果沒有函數(shù)之前,我們肯定需要再次執(zhí)行一遍所有有關(guān)print的代碼,但是函數(shù)的功能就是讓我們減少重復(fù)冗余的代碼,只要再次調(diào)用show_book()即可。
再舉一個(gè)簡(jiǎn)單的例子,在一個(gè)函數(shù)內(nèi)調(diào)用另外一個(gè)函數(shù),并傳遞參數(shù)
1.在定義有默認(rèn)參數(shù)的函數(shù)時(shí),需要注意以下: 必傳參數(shù)必須在前面,默認(rèn)參數(shù)在后;
備注:python為了簡(jiǎn)化函數(shù)的調(diào)用,提供了默認(rèn)參數(shù)機(jī)制,這樣在調(diào)用函數(shù)時(shí),就可以省略最后一個(gè)參數(shù)不寫;設(shè)置何種參數(shù)為默認(rèn)參數(shù)?一般來(lái)說(shuō),將參數(shù)值變化小的設(shè)置為默認(rèn)參數(shù)。
2. 若參數(shù)為列表,且有默認(rèn)值
2.1若調(diào)用方法時(shí)傳該參數(shù),則沒有問題
2.2 若調(diào)用方法時(shí)不傳該參數(shù),則有問題 ,問題是:每次調(diào)用該方法時(shí),該參數(shù)不是創(chuàng)建方法時(shí)的默認(rèn)值,而是多次調(diào)用被修改后的列表。