0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

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

一些你應(yīng)該了解的Python功能特色

馬哥Linux運(yùn)維 ? 來源:lp ? 2019-03-11 15:53 ? 次閱讀

在使用Python多年以后,我偶然發(fā)現(xiàn)了一些我們過去不知道的功能和特性。一些可以說是非常有用,但卻沒有充分利用??紤]到這一點(diǎn),我編輯了一些你應(yīng)該了解的Python功能特色。

帶任意數(shù)量參數(shù)的函數(shù)

你可能已經(jīng)知道了Python允許你定義可選參數(shù)。但還有一個(gè)方法,可以定義函數(shù)任意數(shù)量的參數(shù)。

首先,看下面是一個(gè)只定義可選參數(shù)的例子

現(xiàn)在,讓我們看看怎么定義一個(gè)可以接受任意參數(shù)的函數(shù)。我們利用元組來實(shí)現(xiàn)。

使用 Glob() 查找文件

大多Python函數(shù)有著長(zhǎng)且具有描述性的名字。但是命名為glob()的函數(shù)你可能不知道它是干什么的除非你從別處已經(jīng)熟悉它了。

它像是一個(gè)更強(qiáng)大版本的listdir()函數(shù)。它可以讓你通過使用模式匹配來搜索文件。

你可以像下面這樣查找多個(gè)文件類型:

如果你想得到每個(gè)文件的絕對(duì)路徑,你可以在返回值上調(diào)用realpath()函數(shù):

調(diào)試

下面的例子使用inspect模塊。該模塊用于調(diào)試目的時(shí)是非常有用的,它的功能遠(yuǎn)比這里描述的要多。

這篇文章不會(huì)覆蓋這個(gè)模塊的每個(gè)細(xì)節(jié),但會(huì)展示給你一些用例。

生成唯一 ID

在有些情況下你需要生成一個(gè)唯一的字符串。我看到很多人使用md5()函數(shù)來達(dá)到此目的,但它確實(shí)不是以此為目的。

其實(shí)有一個(gè)名為uuid()的Python函數(shù)是用于這個(gè)目的的。

你可能會(huì)注意到,即使字符串是唯一的,但它們后邊的幾個(gè)字符看起來很相似。這是因?yàn)樯傻淖址c電腦的MAC地址是相聯(lián)系的。

為了減少重復(fù)的情況,你可以使用這兩個(gè)函數(shù)。

序列化

你曾經(jīng)需要將一個(gè)復(fù)雜的變量存儲(chǔ)在數(shù)據(jù)庫(kù)或文本文件中吧?你不需要想一個(gè)奇特的方法將數(shù)組或?qū)ο蟾褶D(zhuǎn)化為式化字符串,因?yàn)镻ython已經(jīng)提供了此功能。

這是一個(gè)原生的Python序列化方法。然而近幾年來JSON變得流行起來,Python添加了對(duì)它的支持?,F(xiàn)在你可以使用JSON來編解碼。

這樣更緊湊,而且最重要的是這樣與JavaScript和許多其他語(yǔ)言兼容。然而對(duì)于復(fù)雜的對(duì)象,其中的一些信息可能丟失。

壓縮字符

當(dāng)談起壓縮時(shí)我們通常想到文件,比如ZIP結(jié)構(gòu)。在Python中可以壓縮長(zhǎng)字符,不涉及任何檔案文件。

注冊(cè) Shutdown 函數(shù)

有可模塊叫atexit,它可以讓你在腳本運(yùn)行完后立馬執(zhí)行一些代碼。想要一起學(xué)習(xí)交流想要共同進(jìn)步的可以加python學(xué)習(xí)q-u-n-227+435+450 ,里有許多學(xué)習(xí)視頻資料等待著大家

假如你想在腳本執(zhí)行結(jié)束時(shí)測(cè)量一些基準(zhǔn)數(shù)據(jù),比如運(yùn)行了多長(zhǎng)時(shí)間:

打眼看來很簡(jiǎn)單。只需要將代碼添加到腳本的最底層,它將在腳本結(jié)束前運(yùn)行。但如果腳本中有一個(gè)致命錯(cuò)誤或者腳本被用戶終止,它可能就不運(yùn)行了。

當(dāng)你使用atexit.register()時(shí),你的代碼都將執(zhí)行,不論腳本因?yàn)槭裁丛蛲V惯\(yùn)行。

聲明:本文內(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)投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2613

    瀏覽量

    47011
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4237

    瀏覽量

    61967
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84077

原文標(biāo)題:原來 Python 還有這些實(shí)用的功能和特點(diǎn)!

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MPLS供應(yīng)商應(yīng)該提供的一些特定功能

    在評(píng)估全球多協(xié)議標(biāo)簽交換(MPLS)采購(gòu)戰(zhàn)略時(shí)采取的措施。第部分研究了在與潛在供應(yīng)商交談之前設(shè)計(jì)強(qiáng)大商業(yè)案例的重要性。本文介紹了MPLS供應(yīng)商應(yīng)該能夠提供的一些特定功能。服務(wù)質(zhì)量“服
    發(fā)表于 08-03 13:50

    了解MOSFET的一些原理

    電機(jī)的驅(qū)動(dòng),如下圖1所示,要做好驅(qū)動(dòng)電路,必須得了解清楚MOSFET的一些原理,才不會(huì)出錯(cuò)。圖1 H橋全橋驅(qū)
    發(fā)表于 09-13 08:14

    Python一些冷知識(shí)(

    ,而實(shí)例用小寫的這準(zhǔn)則。但這并不是強(qiáng)制性的,即使反過來的也沒有關(guān)系。但有一些內(nèi)置的類,首字母都是小寫,而實(shí)例都是大寫。比如 bool 是類名,而 True,F(xiàn)alse 是其實(shí)例;比如
    發(fā)表于 04-01 16:55

    python一些冷知識(shí)(二)

    ,...show me the code'''上面只舉了一些簡(jiǎn)單的例子。但要學(xué)會(huì)舉反三。樣的,在以下這些場(chǎng)景也同樣適用類,和函數(shù)的定義。列表推導(dǎo)式,字典推導(dǎo)式,集合推導(dǎo)式,生成器
    發(fā)表于 04-01 17:03

    Python一些畫圖函數(shù)

    Python的畫圖工具箱即Matplotlib,類似于Matlab里面畫圖功能的包。在Python 里有個(gè)集成了Matplotlib和其他一些
    發(fā)表于 11-16 11:58 ?2872次閱讀

    介紹Python 3 的功能 讓人輕松地從Python 2遷移到Python 3

    為了使初學(xué)者能夠輕松地從 Python 2 向 Python 3 實(shí)現(xiàn)遷移,我收集了一些 Python 3 的功能,希望對(duì)大家有所幫助。
    的頭像 發(fā)表于 01-31 15:11 ?4402次閱讀

    關(guān)于USB 4所需要了解一些知識(shí)

    USB4規(guī)范即將推出,有了它,我們將看到一些應(yīng)該讓我們的連接生活變得更簡(jiǎn)單的變化。雖然官方規(guī)格不會(huì)在2019年中期之前發(fā)布,但我們對(duì)它到達(dá)時(shí)會(huì)看到的內(nèi)容非常了解。
    發(fā)表于 08-26 11:07 ?1155次閱讀

    Python入門應(yīng)該避免什么樣的錯(cuò)誤

    在分享每個(gè)Python新手應(yīng)該知道的4個(gè)常見錯(cuò)誤之前,請(qǐng)確保您熟悉以下文章中的一些Python內(nèi)置功能。
    的頭像 發(fā)表于 04-06 12:03 ?1990次閱讀

    關(guān)于C語(yǔ)言的一些特殊功能介紹

    C語(yǔ)言之所以那么受歡迎,除了C語(yǔ)言歷史悠久之外,還有它具有一些編程語(yǔ)言沒有的功能。那么,今年我們就來了解下C語(yǔ)言的一些特殊
    的頭像 發(fā)表于 08-18 15:31 ?2306次閱讀
    關(guān)于C語(yǔ)言的<b class='flag-5'>一些</b>特殊<b class='flag-5'>功能</b>介紹

    Python一些經(jīng)典面試題資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Python一些經(jīng)典面試題資料合集免費(fèi)下載。
    發(fā)表于 09-04 14:49 ?15次下載
    <b class='flag-5'>Python</b>的<b class='flag-5'>一些</b>經(jīng)典面試題資料合集免費(fèi)下載

    一些常用且實(shí)用的Python代碼實(shí)例

    python場(chǎng)漂亮的翻身仗。 這篇文章不準(zhǔn)備介紹Python速度如何,而是給大家?guī)?b class='flag-5'>一些常用且實(shí)用的Python代碼實(shí)例,幾乎是開發(fā)者必
    的頭像 發(fā)表于 06-22 16:57 ?3087次閱讀

    一些值得玩味的python代碼

    選取了 6 個(gè)自己認(rèn)為值得玩味的 python 代碼,希望對(duì)正在學(xué)習(xí) python有所幫助。
    的頭像 發(fā)表于 03-30 17:32 ?1575次閱讀

    如何使用 Python 來創(chuàng)建一些強(qiáng)大的應(yīng)用和實(shí)用工具

    本文將探討如何以 Zynq UltraScale 器件上的 IP 核為目標(biāo),使用 Python 來創(chuàng)建一些強(qiáng)大的應(yīng)用和實(shí)用工具。此處提供了個(gè)程序包,供您用于讀取設(shè)備樹和訪問 IP 核。此外還提供
    發(fā)表于 09-08 10:23 ?631次閱讀

    使用PyCharm時(shí)的一些實(shí)用設(shè)置和技巧

    在眾多Python的編輯器中,最為推薦的就是PyCharm,帶有整套可以幫助用戶在使用Python語(yǔ)言開發(fā)時(shí)提高效率的工具,比如調(diào)試、語(yǔ)法高亮、項(xiàng)目管理、代碼跳轉(zhuǎn)、智能提示等。此外PyCharm還提供了
    的頭像 發(fā)表于 10-14 16:27 ?4269次閱讀
    使用PyCharm時(shí)的<b class='flag-5'>一些</b>實(shí)用設(shè)置和技巧

    我們?yōu)槭裁葱枰?b class='flag-5'>了解一些先進(jìn)封裝?

    我們?yōu)槭裁葱枰?b class='flag-5'>了解一些先進(jìn)封裝?
    的頭像 發(fā)表于 11-23 16:32 ?465次閱讀
    我們?yōu)槭裁葱枰?b class='flag-5'>了解</b><b class='flag-5'>一些</b>先進(jìn)封裝?