當前位置:
首頁 > 最新 > Python大神,requests庫的作者放大招了

Python大神,requests庫的作者放大招了

只要是學爬蟲的同學,相信無人不知的,無人不曉requests庫!requests這個庫號稱為人類而寫的http庫("Python HTTP Requests for Humans"),非常好用,功能強大!

它的作者就是大名鼎鼎的Kenneth Reitz,這位大神非常牛逼,功力深厚還愛好攝影,對美學有自己的追求,能把這種美學的意境運用到代碼上,非常厲害!

今天去逛他的github,發現他出了一本Python-guide書,趕緊去圍觀學習了一下受益匪淺!本書是號稱Python best practices guidebook, written for Humans,目前有一萬三千多的點贊量!

這本書內容非常豐富,從win/linux/os的開發環境的安裝,到開發工具推薦和設置,到如何寫成優雅的代碼,再到Python應用場景的指南比如(網路應用,web開發,命令行的應用,GUI的應用),資料庫,系統管理,持續集成和資料庫等等,下面我摘錄了某一章節裡面的部分片段:

Writing Great Python Code

這部分指南關注編寫Python代碼的最佳實踐。

結構化您的工程

倉庫的結構

結構是一把鑰匙

模塊

面向對象編程

裝飾器

上下文管理器

動態類型

可變和不可變類型

提供依賴關係

Runners

更多閱讀

代碼風格

一般概念

習語(Idiom)

Python之禪

PEP 8

約定

1.模塊

Python模塊是最主要的抽象層之一,並且很可能是最自然的一個,抽象層允許將代碼分為 不同部分,每個部分包含相關的數據與功能:

可以使用import語句的特殊形式from modu import * 模擬更標準的行為。

但 import* 通常 被認為是不好的做法,但是使用 from modu import * 的代碼較難閱讀而且依賴獨立性不足。

使用 from modu import func 能精確定位您想導入的方法並將其放到全局命名空間中。

比 from modu import * 要好些,因為它明確地指明往全局命名空間中導入了什麼方法。

2.動態類型

Python是動態類型語言,這意味著變數並沒有固定的類型。實際上,Python 中的變數和其他語言有很大的不同,特別是靜態類型語言。

變數並不是計算機內存中被寫入的某個值,它們只是指向內存的 『標籤』 或 『名稱』 。

因此可能存在這樣的情況,變數 『a』 先代表值1,然後變成字元串 『a string』 , 然後又變為指向一個函數:

3.明確的代碼

在存在各種黑魔法的Python中,我們提倡最明確和直接的編碼方式:

4.每行一個聲明

複合語句(比如說列表推導)因其簡潔和表達性受到推崇,但在同一行代碼中寫兩條獨立的語句是糟糕的:

5.返回值

當一個函數變得複雜,在函數體中使用多返回值的語句並不少見。然而,為了保持函數的明確意圖以及一個可持續的可讀水平,更建議在函數體中避免使用返回多個有意義的值。

儘管如此,當一個函數在其正常過程中有多個主要出口點時,它會變得難以調試和返回其 結果,所以保持單個出口點可能會更好。

這也將有助於提取某些代碼路徑,而且多個出口點 很有可能意味著這裡需要重構。

上面只是一些書里的很少的部分,大神的內容非常豐富而且全面,非常成體系!值得細細推敲和咀嚼,對提高Python的功勞大有裨益,還等什麼,趕緊去圍觀吧.

學好Python你需要一個良好的環境,一個優質的開發交流裙,裙里都是那種相互幫助的人才是可以的,我有建立一個Python學習交流裙,在裙里我們相互幫助,相互關心,相互分享內容,這樣出問題幫助你的人就比較多,裙號是六三九五八四零一零,這樣就可以找到大神聚合的裙,如果你只願意別人幫助你,不願意分享或者幫助別人,那就請不要加了,你把你會的告訴別人這是一種分享。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

Python 即將停止支持Python 2.7,全面轉向 Python 3
Python&QQBot:一個簡單、好用的QQ機器人

TAG:Python |