首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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学习交流裙,在裙里我们相互帮助,相互关心,相互分享内容,这样出问题帮助你的人就比较多,裙号是六三九五八四零一零,这样就可以找到大神聚合的裙,如果你只愿意别人帮助你,不愿意分享或者帮助别人,那就请不要加了,你把你会的告诉别人这是一种分享。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180317A0EAAA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券