使用Python這麼多年,竟然還有這些實用的功能和特點!
在使用Python多年以後,我偶然發現了一些我們過去不知道的功能和特性。一些可以說是非常有用,但卻沒有充分利用。考慮到這一點,我編輯了一些你應該瞭解的Python功能特色。
帶任意數量引數的函式
你可能已經知道了Python允許你定義可選引數。但還有一個方法,可以定義函式任意數量的引數。
首先,看下面是一個只定義可選引數的例子
現在,讓我們看看怎麼定義一個可以接受任意引數的函式。我們利用元組來實現。
使用Glob()查詢檔案
大多Python函式有著長且具有描述性的名字。但是命名為glob()的函式你可能不知道它是幹什麼的除非你從別處已經熟悉它了。
它像是一個更強大版本的listdir()函式。它可以讓你通過使用模式匹配來搜尋檔案。
你可以像下面這樣查詢多個檔案型別:
如果你想得到每個檔案的絕對路徑,你可以在返回值上呼叫realpath()函式:
除錯
下面的例子使用inspect模組。該模組用於除錯目的時是非常有用的,它的功能遠比這裡描述的要多。
這篇文章不會覆蓋這個模組的每個細節,但會展示給你一些用例。
生成唯一ID
在有些情況下你需要生成一個唯一的字串。我看到很多人使用md5()函式來達到此目的,但它確實不是以此為目的。
其實有一個名為uuid()的Python函式是用於這個目的的。
你可能會注意到,即使字串是唯一的,但它們後邊的幾個字元看起來很相似。這是因為生成的字串與電腦的MAC地址是相聯絡的。
為了減少重複的情況,你可以使用這兩個函式。
序列化
你曾經需要將一個複雜的變數儲存在資料庫或文字檔案中吧?你不需要想一個奇特的方法將陣列或物件格轉化為式化字串,因為Python已經提供了此功能。
這是一個原生的Python序列化方法。然而近幾年來JSON變得流行起來,Python新增了對它的支援。現在你可以使用JSON來編解碼。
這樣更緊湊,而且最重要的是這樣與JavaScript和許多其他語言相容。然而對於複雜的物件,其中的一些資訊可能丟失。
壓縮字元
當談起壓縮時我們通常想到檔案,比如ZIP結構。在Python中可以壓縮長字元,不涉及任何檔案檔案。
註冊Shutdown函式
假如你想在指令碼執行結束時測量一些基準資料,比如執行了多長時間:
打眼看來很簡單。只需要將程式碼新增到指令碼的最底層,它將在指令碼結束前執行。但如果指令碼中有一個致命錯誤或者指令碼被使用者終止,它可能就不執行了。
當你使用atexit.register()時,你的程式碼都將執行,不論指令碼因為什麼原因停止執行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913713/viewspace-2647715/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python用了這麼多年,總結出超實用的功能和特點Python
- 寫了這麼多年 JavaScript ,竟然還不知道這些技巧?JavaScript
- 用Java這麼多年,這些祕密你知道嗎?Java
- Python到底有多實用?這些功能你需要了解Python
- 用了這麼多年MySql,這些好習慣你用過哪些MySql
- 沒想到 Python 中竟然還藏著這些稀奇古怪的東西...Python
- 除了直播點播IPTV系統還有這麼多功能?
- 即將放棄Python 2.7的不止有Numpy,還有pandas和這些工具Python
- 還有這事?竟然吃到了自己家的瓜
- SQL 居然還能在 Apache ShardingSphere 上實現這些功能?SQLApache
- 我丟,GitHub 上竟然還有這種騷操作Github
- 唱衰這麼多年,PHP 仍然還是你大爺!PHP
- 敲了這麼多年程式碼,這樣的登入方式還真是頭一回見
- python語言有什麼特點?python應用領域有哪些?Python
- Python集合有什麼特點Python
- python列表有什麼特點Python
- 面試題系列:用了這麼多年的 Java 泛型,我竟然只知道它的皮毛面試題Java泛型
- GO和Python有什麼區別?這十點必須知道!GoPython
- OKR這麼好用,竟然還可以用它來擇偶?!OKR
- 沒有基礎學習Python有這些方法和建議Python
- 羞,Java 字串拼接竟然有這麼多姿勢Java字串
- Python為什麼這麼火?學習python有什麼用?Python
- 看似簡單的hashCode和equals面試題,竟然有這麼多坑!面試題
- 一鍵啟動除了不用經常掏鑰匙之外 還有這些功能
- 表中明明沒有這條資料,竟然還能查出來?
- 什麼?你竟然還沒有用這幾個chrome外掛?Chrome
- OA、ERP、BPM 各自的功能和特點是什麼?怎麼配合使用?
- 寫了這麼多年 CSS,initial 和 inherit 以及 unset 和 revert 還傻傻分不清楚?CSS
- 沒想到大廠Adobe還有這些“貓膩”!
- 你居然不知道postman還有這些用法?Postman
- Python 庫這非常的實用Python
- 做深度學習這麼多年還不會挑GPU?這兒有份選購全攻略深度學習GPU
- 同樣是持久化,竟然有這麼大的差別!持久化
- 入門Python,這些優點你要知道!Python
- R語言的特點是什麼?和Python有何區別?R語言Python
- pdf怎麼轉cad格式?這些方法非常實用
- 做前端的你還沒用這些軟體?? out 啦前端
- 這幾年火遍全世界的Python勢頭還這麼強?Python