av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

小小星號創(chuàng)奇跡:一個字符就能改變你編寫Python代碼的方式

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:申請域名、雅安服務器托管、營銷軟件、網(wǎng)站建設、鄂爾多斯網(wǎng)站維護、網(wǎng)站推廣。

Python以句法簡單、簡潔而聞名,只需掌握簡單的英語就能理解其代碼。對初學者來說極具吸引力,它沒有聲明,沒有花哨的字符或者奇怪的句法。正因如此,Python才得以風靡全球。

[[331433]]

除此之外,Python還具備一些很酷的特點,比如裝飾器和列表解析。這些特點確實能創(chuàng)造奇跡,但*也值得這一美名,小小字符能帶來翻天覆地的變化。

先從一個小技巧開始:

 
 
 
 
  1. In [1]: 
  2. first_dict= {'key1': 'hello', 'key2': 'world'} 
  3. second_dict= {'key3': 'whats', 'key4': 'up'} 
  4. In [2]: 
  5. #joins the dicts 
  6. combined_dict= {**first_dict, **second_dict} 
  7. combined_dict 
  8. Out[2]: 
  9. {'key1': 'hello', 'key2': 'world', 'key3':'whats', 'key4': 'up'} 
  10. In [ ]: 

這是合并字典的超簡單方法!你能明顯看出,我僅用了幾個星號就將字典結合了起來,我接下來會一一解釋。

星號在哪些地方發(fā)揮作用?

除了眾所周知的乘法作用,星號還能讓你輕松完成一些重要任務,例如解包。一般來說,你可以使用星號來解包可迭代對象,也能對雙向可迭代對象(就像字典一樣)進行雙重解包。

 
 
 
 
  1. In [7]: 
  2. # unpackingan iterable 
  3. [xfor x inrange(100)] == [*range(100)] 
  4. Out[7]: 
  5. True 
  6. In [8]: 
  7. #unpkacing dict keys 
  8. d = {'key1': 'A'} 
  9. list(d.keys()) == [*d] 
  10. Out[8]: 
  11. True 
  12. In [9]: 
  13. #unpacking whole dict 
  14. d == {**d} 
  15. Out[9]: 
  16. True 

解包的力量

不要破壞別人的代碼

大家也越來越理解這一點,但仍然有人沒有遵守。開發(fā)者寫出的每一個函數(shù)都有其特征。如果函數(shù)被改變,那么所有基于你的代碼而撰寫的代碼都會被破壞。

[[331434]]

圖源:unsplash

我將介紹一種簡單的方法,你可以為自己的函數(shù)增添更多功能性,同時也不會破壞其向后兼容性,最后你會得到更多的模塊化代碼。

在你的代碼中輸入*args和**kwrags,它們會將所有輸入都解包進函數(shù)。單星號針對標準的可迭代對象,雙星號針對字典類的雙向可迭代對象,舉例說明:

 
 
 
 
  1. In [1]: 
  2. defversion1(a, b): 
  3.     print(a) 
  4.     print(b) 
  5. In [2]: 
  6. version1(4,5) 
  7. In [3]: 
  8. #code breaks 
  9. version1(4,5,6) 
  10. --------------------------------------------------------------------------- 
  11. TypeError                                 Traceback(most recent call last) 
  12.  in 
  13.       1# code breaks 
  14. ----> 2 version1(4,5,6) 
  15.   
  16. TypeError: version1() takes 2 positionalarguments but 3 were given 
  17. In [4]: 
  18. defversion2(a, b, *args): 
  19.     print(a) 
  20.     print(b) 
  21.     
  22.     # new function. 
  23.     if args: 
  24.         for c in args: 
  25.             print(c) 
  26. In [5]: 
  27. version2(1,2,3,4,5) 
  28. In [6]: 
  29. #code breaks 
  30. version2(1,2,3,4,5, Extra=10) 
  31. --------------------------------------------------------------------------- 
  32. TypeError                                 Traceback(most recent call last) 
  33. in  
  34.      1 # code breaks 
  35. ----> 2 version2(1,2,3,4,5, Extra=10) 
  36.   
  37. TypeError: version2() got an unexpectedkeyword argument 'Extra' 
  38. In [7]: 
  39. defversion3(a, b , *args, **kwrags): 
  40.     print(a) 
  41.     print(b) 
  42.     
  43.     # new function. 
  44.     if args: 
  45.         for c in args: 
  46.             print(c) 
  47.             
  48.     if kwrags: 
  49.         for key, value inzip(kwrags.keys(), kwrags.values()): 
  50.             print(key,':', value) 
  51. In [8]: 
  52. version3(1,2,3,4,5, Extra=10) 
  53. Extra : 10 
  54. In [ ]: 

工作代碼和破解代碼

這個例子展示了如何使用args和kwargs來接收之后的參數(shù),并留到將來使用,同時也不會破壞你函數(shù)中原有的call函數(shù)。

星號是Python中很重要的一部分,但卻常常被我們忽略。事實上,我們平常沒有注意到的關鍵點還有很多,值得我們?nèi)ヒ稽c點探索。

 


標題名稱:小小星號創(chuàng)奇跡:一個字符就能改變你編寫Python代碼的方式
瀏覽地址:http://uogjgqi.cn/article/djidddg.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流