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

Python 3中被忽視了的三大重要功能

開發(fā) 后端
Python 3上線已有一段時間,大多數(shù)開發(fā)人員(特別是那些首次編程的人)已經(jīng)在使用它了。不過,你確定已經(jīng)對Python 3研究透徹了嗎?

本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)。

Python 3上線已有一段時間,大多數(shù)開發(fā)人員(特別是那些首次編程的人)已經(jīng)在使用它了。不過,你確定已經(jīng)對Python 3研究透徹了嗎?

事實上,其中還有許多新功能對大多數(shù)人來說仍處于未知狀態(tài)。本文就將討論Python 3中三個鮮為人知但非常有用的功能,我在其他語言中接觸到并愛上了這些功能,它們的加入使得使Python 3體驗更佳。

[[340859]]

枚舉

枚舉是在Java和Swift中常使用到的功能,我把它擴(kuò)展到Python中。在Python中創(chuàng)建枚舉非常簡單,在Python 3之前的版本中也可使用(盡管功能更受限):

  1. from enum importEnum 
  2.              classState(Enum): 
  3.         AIR=0 
  4.         LAND=1 
  5.         SEA=2 
  6.         myState =State.AIR             # Prints 0 
  7.       print(myState.value) 
  8.       # Prints AIR 
  9.       print(myState.name) 

在上述代碼中,可以看到通過構(gòu)造一個類并使其成為枚舉的子類,便可以輕松構(gòu)造枚舉。在這里只需在下面的行中定義每個狀態(tài)。就我而言,我有AIR、LAND、SEA。

Python3的新功能是運行.value和.name。這能獲得與狀態(tài)相關(guān)聯(lián)的整數(shù)值或與之相關(guān)聯(lián)的字符串。

在上面的代碼中,輸入State.LAND.name 返回LAND,因此功能不僅僅是一個整數(shù)枚舉。

當(dāng)需要描述性常量時,代碼中的枚舉類型十分有用。例如,與其檢查狀態(tài)是0還是1,不如檢查它是否是State.MOVING或State.STATIONARY狀態(tài). 。常量可能會改變,如果有人在看你的代碼,MOVING比0更有意義,代碼的可讀性也會大大提高。

[[340860]]

圖源:unsplash

格式

在Python 3.6中添加的fstring是格式化文本的一種很好的方式。它們的可讀性強(qiáng),而且不容易出錯。fstring比Python以前使用的格式更易讀。以下是使用格式的示例:

  1. name ='Brett' 
  2.        blog_title ='Medium' 
  3.              # Hi, my name isBrett and I am writing on my Medium blog. 
  4.        a ="Hi, myname is {} and I am writing on my {} blog.".format(name,blog_title) 

如上所示,在字符串中打入括號,然后按順序列出每個變量的名稱。相同代碼任務(wù)很多,但fstring極大地增加了代碼的可讀性,尤其是類似于用Swift格式化字符串。

  1. name ='Brett' 
  2.        blog_title ='Medium' 
  3.              # Hi, my name isBrett and I am writing on my Medium blog. 
  4.        a =f"Hi, myname is {name} and I am writing on my {blog_title} blog." 

為了完成這個更簡潔的字符串,只需在引號前面加上字母f,然后將變量或數(shù)據(jù)直接放入括號中,而不是使用空括號。由于變量本身是寫在括號內(nèi)的,所以不必計算格式中寫入的項的數(shù)量來確定變量的位置,變量就在應(yīng)在的位置。

相比于字符串連接或格式化字符串,fstring可以生成更可讀、更可靠的代碼。

數(shù)據(jù)類

數(shù)據(jù)類可能要比上述所談更為晦澀難懂,所以我將簡要地解釋一下。我在Kotlin中逐漸喜歡上了數(shù)據(jù)類,因此很想在Python中使用它們。

數(shù)據(jù)類實際上是一個類,其唯一目的是保存數(shù)據(jù)的類。類將具有可以訪問和寫入的變量,但上面沒有額外的邏輯。

假設(shè)你有一個程序,在不同的類之間傳遞一個字符串和一個數(shù)字?jǐn)?shù)組。使用pass(str,arr)這樣的方法也可行,最好是創(chuàng)建一個只包含字符串作為字段和數(shù)組的數(shù)據(jù)類。通過創(chuàng)建一個數(shù)據(jù)類,你所做的將更加清晰,單元測試也將更加容易。

下面這個示例將說明如何創(chuàng)建一個表示三維向量的簡單數(shù)據(jù)類,但這可以很容易地擴(kuò)展為表示不同數(shù)據(jù)的任意組合:

  1. from dataclasses import dataclass 
  2.              # Definedataclass 
  3.            @dataclass 
  4.            classVector3D: 
  5.               x: int 
  6.               y: int 
  7.               z: int 
  8.                            # Create a vector           u =Vector3D(1,1,-1) 
  9.              # Outputs: Vector3D(x=1,y=1z=-1) 
  10.            print(u) 

在這里,你可以看到數(shù)據(jù)類的定義與聲明普通類非常相似,只是我們先用了@dataclass,然后每個字段的名稱都是name:type。

雖然我們創(chuàng)建的Vector3D功能有限,但是數(shù)據(jù)類的目的只是提高效率并減少代碼中的錯誤,傳遞Vector3D比傳遞int變量要好得多。

以上三點就是我的新發(fā)現(xiàn)。你在Python 3中嘗試過哪些鮮為人知的功能吶?

 

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2024-02-29 07:48:55

Python編程語言上下文管理器

2023-08-04 14:31:43

Python核心項目

2010-01-28 10:11:18

IT金飯碗

2009-12-03 14:22:57

2009-11-17 16:14:28

無線路由器

2019-11-04 09:32:50

云計算數(shù)據(jù)中心技術(shù)

2012-08-21 11:03:36

2022-06-27 11:58:18

智能制造網(wǎng)絡(luò)安全工業(yè) 4.0

2013-08-01 13:55:55

Android 4.3新特性

2009-11-09 09:57:39

交換機(jī)路由器

2022-10-20 07:47:46

2012-11-28 15:53:16

災(zāi)難恢復(fù)

2011-11-03 16:27:26

服務(wù)器虛擬化云計算

2019-01-18 13:22:10

布線事項網(wǎng)絡(luò)

2015-05-20 11:06:54

2023-10-24 18:05:00

2013-01-22 09:21:28

云計算成本私房云

2010-06-24 13:57:57

Linux Cat命令

2021-01-13 13:49:29

漸進(jìn)式網(wǎng)頁應(yīng)用應(yīng)用程序開發(fā)

2011-08-17 10:04:13

vSphere 5虛擬化
點贊
收藏

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

主站蜘蛛池模板: 红桃成人在线 | 国产免费视频 | 视频一区二区三区中文字幕 | 亚洲精品视频免费 | 日韩久久网 | 午夜精品久久 | 91资源在线| 欧美成人一级视频 | 精品无码久久久久久国产 | 99久久精品国产一区二区三区 | 久久伊| 日韩中文久久 | 成人做爰69片免费观看 | 操操日| 天天综合久久 | 国产成人免费在线 | 少妇av片| 国产乱码久久久久久 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 九九在线视频 | 在线看av的网址 | www.夜夜骑| 精品久久久久久久 | 亚洲欧美视频一区 | 韩三级在线观看 | 三级视频网站 | 精品国产乱码久久久久久丨区2区 | 四虎成人精品永久免费av九九 | 91视频.| 午夜精品视频 | 国产精品视频999 | 欧美日本亚洲 | 日韩精品在线观看视频 | 黄色大片免费网站 | 日韩精品视频在线免费观看 | 夜久久 | 午夜精品久久久久久久星辰影院 | 亚洲精品欧美一区二区三区 | 在线视频一区二区 | 综合久久久| 日韩成人免费av |