0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分享Python 3中三個(gè)鮮為人知但非常有用的功能

如意 ? 來源:讀芯術(shù)微信公眾號(hào) ? 作者:讀芯術(shù)微信公眾號(hào) ? 2020-10-08 10:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

枚舉

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

分享Python 3中三個(gè)鮮為人知但非常有用的功能

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

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

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

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

格式

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

分享Python 3中三個(gè)鮮為人知但非常有用的功能

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

分享Python 3中三個(gè)鮮為人知但非常有用的功能

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

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

數(shù)據(jù)類

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

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

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

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

分享Python 3中三個(gè)鮮為人知但非常有用的功能

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7252

    瀏覽量

    91666
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4826

    瀏覽量

    86549
  • 枚舉
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    4712
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用LDO進(jìn)行設(shè)計(jì)的一些鮮為人知的方面

    低壓差線性穩(wěn)壓器 (LDO) 在電路設(shè)計(jì)無處不在。許多只有三個(gè)終端;VIN、VOUT 和 GND。什么可能出錯(cuò)?某些 LDO 設(shè)計(jì)標(biāo)準(zhǔn)已得到充分證明,例如需要觀察正確的輸出電容和等效串聯(lián)電阻
    的頭像 發(fā)表于 04-12 13:51 ?1.9w次閱讀
    使用LDO進(jìn)行設(shè)計(jì)的一些<b class='flag-5'>鮮為人知</b>的方面

    鮮為人知的秘密—鍵盤選購技巧

    鮮為人知的秘密—鍵盤選購技巧  很多用戶在購買電腦配件的時(shí)候,對(duì)CPU、主板、顯卡等主要部件慎之又慎,即便是鼠標(biāo)和機(jī)箱也選之又選,不過說到另外一個(gè)主要輸入設(shè)備鍵盤,許多購機(jī)者卻認(rèn)為沒有精挑細(xì)選的必要
    發(fā)表于 02-23 16:25

    鮮為人知的手機(jī)特殊功能

    鮮為人知的手機(jī)特殊功能      1、你的手機(jī)電量不足了,為了
    發(fā)表于 12-19 15:09 ?1134次閱讀

    那些鮮為人知的非主流移動(dòng)操作系統(tǒng)

    以操作系統(tǒng)來說,Google Android及蘋果(Apple)iOS兩大龍頭占據(jù)過半市場(chǎng),其余則由數(shù)個(gè)小眾系統(tǒng)瓜分。不過這些非主流操作系統(tǒng)存在數(shù)個(gè)鮮為人知風(fēng)格獨(dú)特的操作系統(tǒng),值得一探究竟。
    發(fā)表于 06-30 09:02 ?6269次閱讀

    PCB軟件不為人知的技巧

    PCB軟件不為人知的技巧,該技巧鮮為人知。
    發(fā)表于 08-29 14:22 ?18次下載

    最后悔的事情,馬云鮮為人知的柔情面

    在我們的印象當(dāng)中,馬云是一個(gè)在互聯(lián)網(wǎng)電商領(lǐng)域叱咤風(fēng)雨的梟雄,一個(gè)被今天很多年輕人視為互聯(lián)網(wǎng)創(chuàng)業(yè)大神的人物??杉幢闶窃谒菢拥腻P錚鐵骨之下,也隱藏著鮮為人知的柔情。
    發(fā)表于 12-21 02:33 ?535次閱讀

    17個(gè)非常有用Python 技巧

    實(shí)際上,很多人選擇學(xué)習(xí) Python 的首要原因是其編程的優(yōu)美性,用它編碼和表達(dá)想法非常自然。此外,Python 的編寫使用方式有多種,數(shù)據(jù)科學(xué)、網(wǎng)頁開發(fā)、機(jī)器學(xué)習(xí)皆可使用 Python
    的頭像 發(fā)表于 08-27 17:56 ?5164次閱讀
    17<b class='flag-5'>個(gè)</b><b class='flag-5'>非常有用</b>的 <b class='flag-5'>Python</b> 技巧

    Vim默認(rèn)未啟用實(shí)際非常有用的選項(xiàng)

    Vim 作為一款功能強(qiáng)大、選項(xiàng)豐富的編輯器,為許多用戶所熱愛。本文介紹了一些在 Vim 默認(rèn)未啟用實(shí)際非常有用的選項(xiàng)。雖然可以在每個(gè) Vim 會(huì)話
    的頭像 發(fā)表于 09-25 17:54 ?5614次閱讀

    淺談泰克示波器鮮為人知的10個(gè)特異功能

    的關(guān)鍵測(cè)試扮演著重要角色。在提供準(zhǔn)確測(cè)試數(shù)據(jù)以外,泰克示波器還具有10個(gè)鮮為人知的獨(dú)特功能。這些功能可以幫助您提高測(cè)試精度,更好的觀察圖形,更便捷的提交報(bào)告……泰克示波器幫您“劍走偏鋒
    發(fā)表于 03-24 10:03 ?4721次閱讀

    泰克示波器鮮為人知的十個(gè)特異功能

    示波器在不同行業(yè)的關(guān)鍵測(cè)試扮演著重要角色。在提供準(zhǔn)確測(cè)試數(shù)據(jù)以外,泰克示波器還具有10個(gè)鮮為人知的獨(dú)特功能。這些功能可以幫助您提高測(cè)試精度
    的頭像 發(fā)表于 10-12 01:49 ?740次閱讀

    示波器十大鮮為人知的特異功能

    射頻行業(yè),泰克示波器在不同行業(yè)的關(guān)鍵測(cè)試扮演著重要角色。在提供準(zhǔn)確測(cè)試數(shù)據(jù)以外,泰克示波器還具有10個(gè)鮮為人知的獨(dú)特功能,這些功能可以幫助
    發(fā)表于 03-01 17:37 ?1185次閱讀
    示波器十大<b class='flag-5'>鮮為人知</b>的特異<b class='flag-5'>功能</b>

    20個(gè)非常有用Python單行代碼

    有用Python 單行代碼片段,只需一行代碼即可解決特定編碼問題!
    的頭像 發(fā)表于 03-14 17:45 ?1137次閱讀

    17個(gè)非常有用Python技巧

    Python 是一門非常優(yōu)美的語言,其簡(jiǎn)潔易用令人不得不感概人生苦短。在本文中,作者 Gautham Santhosh 帶我們回顧了 17 個(gè)非常有用
    的頭像 發(fā)表于 04-10 14:28 ?765次閱讀

    個(gè)簡(jiǎn)單非常有用的小前置放大器電路

    個(gè)簡(jiǎn)單非常有用的小前置放大器電路可以通過連接幾個(gè)晶體管來構(gòu)建。該裝置可輕松將 1mV 信號(hào)提升至 100mV 甚至更高。因此,它非常方便放大不能直接與功率放大器一起使用的極小信號(hào)。
    的頭像 發(fā)表于 06-10 17:27 ?1976次閱讀
    一<b class='flag-5'>個(gè)</b>簡(jiǎn)單<b class='flag-5'>但</b><b class='flag-5'>非常有用</b>的小前置放大器電路

    沒有什么是完美的,FPGA可能非常有用

    FPGA是非常有用的器件,通常與ADI公司的ADC或功率IC等一起設(shè)計(jì)到客戶的設(shè)計(jì)。FPGA 可以實(shí)現(xiàn)微控制器和所需的任何膠水邏輯。在這篇博客,我將討論一些與功能安全和FPGA相關(guān)
    的頭像 發(fā)表于 06-29 10:28 ?1800次閱讀
    沒有什么是完美的,<b class='flag-5'>但</b>FPGA可能<b class='flag-5'>非常有用</b>

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品