python3教程:默認(rèn)參數(shù)為列表

默認(rèn)參數(shù)的坑

定義一個函數(shù),傳入一個list,添加一個end再返回

創(chuàng)新互聯(lián)公司服務(wù)項目包括渝水網(wǎng)站建設(shè)、渝水網(wǎng)站制作、渝水網(wǎng)頁制作以及渝水網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,渝水網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到渝水省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

def  add_end(L=[]):
    L.append('END')
    return L

正常調(diào)用時,結(jié)果似乎不錯

print  (add_end([1,2,3]))  #[1, 2, 3, 'END']

使用默認(rèn)參數(shù)調(diào)用時,一開始結(jié)果也是對的,但是再次調(diào)用時,結(jié)果就不對了

'''
學(xué)習(xí)中遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流群:
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書!
'''
print (add_end())   #['END']
 
print (add_end())    #['END', 'END']
 
print  (add_end())    #['END', 'END', 'END']

從上述調(diào)用結(jié)果發(fā)現(xiàn),函數(shù)每次都記住了上次添加了‘END’后的list,python函數(shù)在定義的時候,默認(rèn)參數(shù)L的值就被計算出來了即[],因為默認(rèn)參數(shù)L也是一個變量,它指向?qū)ο骩],每次調(diào)用該函數(shù),如果改變 了L的內(nèi)容,則下次調(diào)用時,默認(rèn)參數(shù)的內(nèi)容就變了,不再是函數(shù)定義時的[]了

所以,定義默認(rèn)參數(shù)要牢記一點:默認(rèn)參數(shù)必須指向不變對象

修改上面的例子,可以用None這個不變對象來實現(xiàn)

def  add_end2(L=None):
    if L is None:
        L=[]
    L.append('END')
    return  L

無論調(diào)用多少次都沒問題

print (add_end2())
print  (add_end2())
print  (add_end2())
#['END']
#['END']
#['END']

不變對象一旦創(chuàng)建,對象內(nèi)部的數(shù)據(jù)就不能修改,這樣就減少了由于修改數(shù)據(jù)導(dǎo)致的錯誤。此外,由于對象不變,多任務(wù)環(huán)境下同時讀取對象不需要加鎖,同時讀一點問題都沒有。我們在編寫程序時,如果可以設(shè)計一個不變對象,那就盡量設(shè)計成不變對象。

不可變(immutable):int、字符串(string)、float、(數(shù)值型number)、元組(tuple)
可變(mutable):字典型(dictionary)、列表型(list)

網(wǎng)站題目:python3教程:默認(rèn)參數(shù)為列表
當(dāng)前路徑:http://m.kartarina.com/article40/dsoggeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、手機網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)站策劃小程序開發(fā)用戶體驗

廣告

聲明:本網(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)

成都網(wǎng)站建設(shè)公司
主站蜘蛛池模板: 本免费AV无码专区一区| 无码中文人妻在线一区二区三区| 精品一区二区三区无码免费直播| 国产av激情无码久久| 少妇无码太爽了在线播放| 亚洲av无码片区一区二区三区| 久久久久亚洲精品无码网址色欲| 成人无码精品1区2区3区免费看| 精品久久久无码人妻中文字幕| 欧洲精品无码一区二区三区在线播放| 久久精品aⅴ无码中文字字幕重口 久久精品国产亚洲AV无码娇色 | 久久久久久久久无码精品亚洲日韩 | 亚洲AV无码专区亚洲AV伊甸园| 亚洲AV无码片一区二区三区| 丰满熟妇人妻Av无码区| 亚洲精品无码专区久久同性男| 亚洲欧洲无码一区二区三区 | 日韩人妻无码一区二区三区久久99 | 在线高清无码A.| 妖精色AV无码国产在线看| 91久久精品无码一区二区毛片| 国产AV一区二区三区无码野战| 亚洲AV无码之日韩精品| 精品人妻中文无码AV在线| 亚洲爆乳少妇无码激情| 亚洲综合无码无在线观看| 少妇人妻偷人精品无码视频新浪 | 亚洲精品无码永久中文字幕| 免费A级毛片无码A∨男男| 亚洲av无码专区亚洲av不卡| 成人无码区免费A片视频WWW| 久久久久久精品无码人妻| 青青爽无码视频在线观看| 国产午夜无码专区喷水| 台湾无码AV一区二区三区| 日韩专区无码人妻| 亚洲精品无码久久毛片| 国产日产欧洲无码视频无遮挡 | 亚洲国产精品无码久久久蜜芽 | 久久亚洲精品无码网站| 人妻丰满熟妇AV无码区|