成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python默認(rèn)參數(shù)如何才能進(jìn)行求值操作

開發(fā) 后端
Python默認(rèn)參數(shù)在使用的時(shí)候需要我們注意的東西有很多,其中我們需要不斷的進(jìn)行相關(guān)知識(shí)的學(xué)習(xí),下面我們就詳細(xì)的看看如何才能更好的進(jìn)行相關(guān)問(wèn)題的解決。

和很多高級(jí)編程語(yǔ)言一樣,Python默認(rèn)參數(shù)也有很大的用處。但是我們?cè)谑褂玫臅r(shí)候會(huì)出現(xiàn)不少的問(wèn)題,這些問(wèn)題就需要我們用相關(guān)的知識(shí)進(jìn)行解答。當(dāng)默認(rèn)參數(shù)是數(shù)值類型時(shí),一切都很美好:

  1. >>> def function(a, b = 1000000):  
  2. b +=a 

return b 如果你喜歡,你可以在一段代碼中無(wú)數(shù)次的調(diào)用這個(gè)函數(shù),只要你參數(shù)一樣,結(jié)果應(yīng)該都一樣。比如:function(1)總是會(huì)返回1000001。但是默認(rèn)參數(shù)是其他類型(如列表)時(shí)就沒(méi)那么美好了:

  1. >>> def function(a, b = []):  
  2. b.append(a)  
  3. print(b) 

這時(shí)你如果在一段代碼中持續(xù)的調(diào)用該函數(shù),將會(huì)發(fā)生或許令人意外的情況:第一次調(diào)用function(1)的時(shí)候,很正常,會(huì)打印出[1],但是第二次再調(diào)用function(1),將會(huì)打印出[1,1]。這是為什么呢?不要緊,使用Python默認(rèn)參數(shù)我們有辦法檢查一下是哪里出了毛病。這里我們可以在每一次調(diào)用函數(shù)的時(shí)候打印出b的ID。Python中一個(gè)對(duì)象的ID在其生命周期中是唯一的,和其他高級(jí)語(yǔ)言中所說(shuō)的對(duì)象的地址一樣。如果第二段代碼中的b對(duì)象其ID一樣,說(shuō)明兩次調(diào)用都使用的同一個(gè)對(duì)象,換句話說(shuō),Python默認(rèn)參數(shù)的求值操作在其生命周期中只發(fā)生一次(第一次)。可以使用以下的代碼測(cè)試我們的想法:

  1. def function1(a,b=100000):  
  2. b+=a  
  3. print("b = {0} with the id of {1}".format(b,id(b)))  
  4. def function2(a,b=[]):  
  5. b.append(a)  
  6. print("b = {0} with the id of {1}".format(b,id(b)))  
  7. def test():  
  8. function1(1)  
  9. function1(1)  
  10. function2(1)  
  11. function2(1)  
  12. if __name__ == '__main__':  
  13. test() 

得到的輸出如下:

 

  1. b = 100001 with the id of 33384304   
  2. b = 100001 with the id of 33384304   
  3. b = [1] with the id of 33341848   
  4. b = [1, 1] with the id of 33341848  

以上就是對(duì)Python默認(rèn)參數(shù)的詳細(xì)介紹。果然,從后面兩條結(jié)果中可以看到列表b在兩次調(diào)用時(shí)都是使用的同一個(gè)對(duì)象,看來(lái)之前的猜想是正確的。對(duì)非數(shù)值類型的默認(rèn)參數(shù),只會(huì)在第一次調(diào)用時(shí)進(jìn)行求值(取地址)操作。后面的所有調(diào)用都發(fā)生在同一個(gè)位置的對(duì)象上。只有字符串類型不受此限制,因?yàn)閟tring本身是不可變的(immutable)的,每一次修改它都會(huì)創(chuàng)建一個(gè)新的對(duì)象。
 

【編輯推薦】

  1. Python命令行代碼強(qiáng)化記憶寶典
  2. Python編程語(yǔ)言在Java中的使用效果
  3. Python編程語(yǔ)言與其他語(yǔ)言的學(xué)習(xí)區(qū)別
  4. Python編程語(yǔ)言使用者心得
  5. Python循環(huán)如何解決無(wú)限循環(huán)
責(zé)任編輯:張浩 來(lái)源: IT專家網(wǎng)
相關(guān)推薦

2010-03-12 18:29:56

Python字符串替換

2023-03-28 08:07:12

2010-03-04 17:50:42

Android操作系統(tǒng)

2010-02-05 16:35:35

Android操作系統(tǒng)

2010-02-22 17:12:34

Python對(duì)象

2010-02-01 16:22:36

Python字符串操作

2024-11-20 10:00:00

Python文件讀寫

2023-12-11 16:34:35

人工智能GenAI精確編碼

2022-11-08 09:44:45

2022-10-10 12:31:37

服務(wù)器性能

2023-11-13 10:17:56

2013-08-03 17:59:37

Nginx

2024-11-13 15:22:36

Python列表切片

2020-10-28 09:40:04

CIO遠(yuǎn)程工作技術(shù)

2013-05-24 10:22:07

Python默認(rèn)參數(shù)值

2010-03-25 16:31:55

Python代碼

2010-08-31 08:57:02

谷歌即時(shí)搜索功能

2010-03-12 13:44:31

Python whil

2010-03-12 18:45:24

Python匹配

2009-11-03 09:22:36

jQuery
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲一区二区三区四区五区午夜 | 欧美日韩在线免费 | 久久久久国产一级毛片高清网站 | 91精品国产自产在线老师啪 | 日韩av成人在线 | 综合激情久久 | 在线看av网址 | 成人国产免费视频 | 精品视频一区二区三区在线观看 | 成人免费观看男女羞羞视频 | 91在线电影 | 国产精品a一区二区三区网址 | 久久精品国产一区二区电影 | 中文字幕亚洲精品 | 欧美一区视频 | 中文字幕视频一区二区 | 精品一区二区三区在线视频 | 中文字幕av中文字幕 | 亚洲欧美日韩中文在线 | 欧美乱码精品一区二区三区 | 国产精品久久久久aaaa九色 | 欧美日韩国产精品一区 | 日韩综合网 | 羞羞的视频免费看 | 天堂av中文 | 99精品在线 | 一本一道久久a久久精品综合 | 亚洲一区二区免费电影 | 在线免费观看黄a | 狠狠操电影 | 中文字幕一区二区三区在线视频 | 国产精品美女在线观看 | 午夜影院普通用户体验区 | 日本精品视频 | 亚洲国产精品va在线看黑人 | 久久伊人影院 | 久久久综合网 | 韩国精品在线观看 | 一级做a爰片性色毛片16 | 99热热热热 | 婷婷91|