怎么让你的代码更Pythonic?光有技巧可不行,你还须要看这些

写代码如同写文章,好的文章是反复修改出来的,代码也一样是反复的重构出来的。今天给你们分享下,怎么从一个编程学习者变为一个程序猿(程序媛)!起码不要让别人一看你的代码就知道你是个小菜鸟!sql

怎么让你的代码更Pythonic?光有技巧可不行,你还须要看这些

 咱们一般写一个代码,必然会通过一个简单-难-简洁的过程,那么在重构的过程当中须要注意哪些呢?编程

一、 代码能够正常运行小程序

首先必然要保证,代码能够正常运行!设计模式

不论你是直接按逻辑写下来仍是函数式编程,必须先能实现你的代码功能,能够正常运行起来性能优化

二、 精简代码,提升可读性cookie

当你的代码能够运行起来之后,接着就要从新读一遍代码,如下几个方面是须要优化的地方:数据结构

  • · 你的代码是否遵循了pep8原则,好比命名,每一行代码长度等等,这些细节要处理好
  • · 函数的重构,返回值、缺省值等等,要保持函数式功能单一原则
  • · 有没有过多的if else嵌套,是否能够提取
  • · 全局变量有没有大写,有没有写到开头

三、 代码注释完整多线程

代码初步精简事后或者过程当中,顺手将注释写一下是一个很好的习惯并发

代码是要先给人看,而后才会给机器运行!因此注释是一个很是重要的东西,有的同窗不是很喜欢写注释,以为很麻烦,那么若是这个代码很短,那么确实能够不写,可是若是你的代码很长,成百上千行,不写注释会让你很懵逼!分布式

四、 异常处理齐全,代码很健壮

代码有时效性!尤为在爬虫上更是深有体会,如今能够正常运行的代码,过段时间可能由于网页改版,或者cookie、sql语句等等的变更,均可能会致使你的代码报错,咱们要提早将这些问题考虑进去,这就须要异常处理机制了,注意如下几点:

  • · 若是是爬虫,是否须要写上cookie的相关函数,若是须要ip代理,是否考虑了代理ip的时效性
  • · 循环遍历的时候是否有考虑错误,好比获取了空列表
  • · If分支是否考虑齐全,有没有else的状况
  • · 文件读写是否有try语句,是否考虑存储位置的问题
  • · 拿到一个句柄,好比SSH,SQL,这样有没有考虑到句柄的有效性

代码全部的异常可能都须要考虑,以此来保证代码的健壮!

五、 配置文件

咱们在刚才写好了全局变量,如今能够将这些全局变量放入一个配置文件中,来实现和接口分离,下降耦合度。对于用户来讲只要改配置文件就好了。好比能够把整个的全局变量放到一个config.py里面,而后在主程序里面用from config import * 这样的话,对后续的修改方便不少。

若是能够,写一个Redeme文档,将你的代码中用到环境、版本、配置配置文件等等信息都写入里面,对人对己都是很方便的!

六、 各个单元功能完善,测试各类分支回路

程序虽然写好了,无论你的程序是几十行的小程序小脚本,仍是几千上万行的项目,测试用例是必定要设计。

简单的程序能够设一些断言assert,看一些有无异常,对于复杂的逻辑,必定要针对性的设计多个分支回路反复测一下代码。

七、 添加日志功能

有同窗说上面6步以后,我感受代码已经很不错了,这么还有优化!Python的代码不少都是在服务区上运行的,你总不能一直都是print吧,尤为是对大型的程序,没有日志怎么行,建议用logging模块进行日志的记录

八、 性能优化

结构优化和线程、进程、协程、分布式等等提早设计好

若是你处理的任务仅仅是几百上千,对性能要求不高,对实时性要求也不高那还好。若是你要处理几十万条数据呢!这个时候必定要考虑并发的处理,究竟是用多进程,仍是多线程,线程池,仍是用协程,须要思考!

固然性能上的优化并不单是单线程变多线程,还有数据结构的优化,好比何时该用列表,何时用元组,哪种对内存消耗少,查询快。

九、 函数变类

为了让咱们的代码更加易于扩展,适应变化!咱们须要用类把变量和函数进行封装,设计一些接口,那些是对外开发的,那些是对外封闭的。

哪些用静态函数包裹,哪些用实例方法。是否是须要用一些装饰器来简化代码。

相同类别的函数,进行整合,合并要一个类里面。

多个功能用多个类来表示,方便维护和扩展。

类与类之间,考虑他们的内在关系。用组合仍是继承,用一些简单的设计模式,根据程序的特性用好比工厂模式,观察者。

怎么让你的代码更Pythonic?光有技巧可不行,你还须要看这些
欢迎关注并私信,一块儿来学习进步!
相关文章
相关标签/搜索