服务粉丝

我们一直在努力
当前位置:首页 > 科技 >

多年开发经验告诉你如何从一个Python新手蜕变成老手!

日期: 来源:菜鸟学Python收集编辑:代码

粉丝独白入门不久的菜鸟会问Python代码应该怎么写,其实写代码如同写文章,好的文章是改出来的,好的诗句是推敲出来的,那么好的代码呢,好的代码一定是重构出来的!今天我来总结一下如何从菜鸟变成老手的建议,也许对大家有帮助,不当之处多包涵。

我们通常写一个程序的时候,都会经历从单->双->多,从硬编码到柔编码,基本上都会经历下面的这几步,其实代码是讲究柔术的。上面是总览图,我们接着来一一解释。1:先让程序跑起来当我们刚开始写一个程序的时候,无论是一个自动化脚本,还是一个小游戏,还是一个爬虫,还是一个模块,对于新手来说最简单的方法就是先work:

用最直接的方法,让程序先能work.比如直接用函数写,直接用假的变量,先把程序运行起来运行正常的逻辑,让程序跑通

2:初步重构代码当你的代码已经初步run起来之后,接着我们要对代码进行简单的梳理和整形,会从下面几个地方修剪修剪:

变量名,函数名字的重构函数的状态要不要有返回值if else这样的嵌套太多,考虑提取函数进行提取和重构,每个函数的功能单一原则函数的参数有没有考虑缺省值全局变量,有没有大写,有没有写在开头。

3:增加注释代码修剪过之后,发现利索多了,这个时候要趁热打铁把注释写上去!很多同学不太爱写注释,觉得麻烦。如果这个代码就你一人用,或者说这个代码很短,确实可以不写!如果这个代码有几千行,并且会多个人合作开放,后续还要扩展功能,那么你花5分钟来写注释,未来会帮你节省5个小时的维护时间! 代码首先是给人看的,然后才是给机器运行的!4:一定要考虑异常代码跑的好好的,看起来没有问题,是不是很有成就感!

如果是爬虫,你把网络断了,看看有没有异常处理如果是文件,你把句柄改成None看看有没有问题如果取列表里面的item,当你获得列表为空,会发生什么所有的这一切,你有没有考虑到异常,有没有考虑到程序的健壮性。

要考虑异常分支,if 里面有没有else的情况for里面如果出现了错误,有没有break判断list[],需要看一下这个列表是否为空文件读写,有没有try/except拿到一个句柄,比如SSH,SQL,这样有没有考虑到句柄的有效性

5:添加配置文件我们刚从把局部变量,提到了全局变量。现在我们需要把这个全局变量放到一个配置文件里面,把实现和接口分离,降低耦合度。对于用户来说只要改配置文件就行了。比如可以把整个的全局变量放到一个config.py里面,然后在主程序里面用from config import * 这样的话,对后续的修改方便很多。

6:测试用例很重要程序虽然写好了,不管你的程序是几十行的小程序小脚本,还是几千上万行的项目,测试用例是一定要设计。

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

7:日志模块很重要有同学说上面6步之后,我感觉代码已经很不错了,这么还有进化!Python的代码很多都是在服务区上运行的,你总不能一直都是print吧,尤其是对大型的程序,没有日志怎么行,建议用logging模块进行日志的记录。

8:性能上的优化如果你处理的任务仅仅是几百上千,对性能要求不高,对实时性要求不高那还好。如果你要处理几十万条数据呢!

我记得我有一次爬stackoverflow的数据,有96万的数据,你不用并发,估计等程序运行完,你已经睡着啦!

这个时候一定要考虑并发的处理,到底是用多进程,还是多线程,线程池,还是用协程,需要思考!

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

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

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

相同类别的函数,进行整合,合并要一个类里面。多个功能用多个类来表示,方便维护和扩展。类与类之间,考虑他们的内在关系。用组合还是继承,用一些简单的设计模式,根据程序的特性用比如工厂模式,观察者。

10:代码检查代码到这里应该是比较优美了,等一下是不是忘记了一个很重要的东西,我们有没有遵循PEP8的代码风格。

比如命名规范,每一行的长度,看似是细节,但是很多时候细节决定成败。为啥不用这个神器检查一下Pylint库,它能快速帮你查缺补漏。

上面这10条就是一个菜鸟写代码的总结和反思,也许对大家有用。

相关阅读

  • “武汉公积金” 推出小程序,提取资金更快到账

  • 长江日报大武汉客户端1月6日讯(记者冷靖华 通讯员吴冬晖)1月6日,长江日报记者从武汉住房公积金管理中心了解到,为改善缴存职工服务体验,武汉住房公积金管理中心开通个人网厅微信
  • 手机App弹窗关不掉?政策监管有新招

  • 移动互联时代,即时通信、网络视频、在线购物、新闻资讯等各类移动互联网应用程序(App)在快速发展的同时也滋生了种种乱象。近日,有关部门接连出台相关举措,
  • 【关注】咳嗽不停该咋办?解答来了


  • 围绕湖北省疫情防控“十二条”您有哪些急难愁盼或投诉建议现可进入湖北发布
    一“布”到位小程序留言告诉我小布帮您联系相关政府职能部门办理如何使用
  • “陂小帮”出“心”招 指尖轻点“码”上办

  • 动动手指,就可轻松在微信端实现政务服务“码上办”。为方便群众办事,黄陂区行政审批局开发并上线了“陂小帮”微信小程序,将行政审批和公共服务事项融为一

热门文章

  • OPPO k1的低价高配真实么?网友:不看不知道

  • 近日OPPO一款新机OPPO k1,摒弃了高价低配,就连自家老大哥r17都要怼一下。更是放弃了请代言人,以往的OPPO手机还没出来,各路流量小生,花样美男的代言就先来了。还有线下销售人员的
  • 一招教你手机无限制成为一台新设备

  • 大家平时用手机去注册app,肯定会遇到检测设备异常,交易关闭,等问题 这个都是手机已经不止1-2次注册过此app,不断更换手机仅是一个暂时的方法,却不是长久之计,手机总归会用完
  • 从零开始如何开网店

  • 随着互联网的高速发展,人们的生活发生了翻天覆地的变化,生活节奏越来越快,网购已经成为家家户户生活中离不开的一种购物方式了。网购的发展使得越来越多的人想要涉足电商事业,那

最新文章

  • “贯彻党的二十大精神 民政爱民送温暖”

  • 春节将至,为更好关心困难群众的生产生活问题,帮助困难家庭度过一个安乐祥和的新春佳节,1月4日,石嘴山市举行“学习贯彻二十大 民政爱民送温暖”物资发放仪式。此次活动共筹措资
  • 春运送福 温暖回家路

  • 2023年春运于1月7日拉开大幕,火车站、机场及各大客运站人头攒动。在拉萨火车站候车室内,39岁的赵政西说,他在拉萨做生意8年了,准备乘坐火车回河南老家过年。“今年自己没有挣到
  • 阜阳:“春风行动”招聘会 134人达成就业意向

  • 1月7日,在由市人社局、阜城三区人社局主办,市就业管理服务中心、颍州区公共就业和人才服务中心承办的2023年“春风行动暨就业援助月‘接您回家’专场招聘会”上,现场初步达成就
  • 第十六届深圳国际金融博览会1月9日开幕

  • 1月9日,以“科技 数字 绿色 消费”为主题的第十六届深圳国际金融博览会(简称金博会)在深圳会展中心1号馆开幕。本届金博会由深圳市人民政府主办,深圳市贸促委、深圳市地方金融监
  • 市人大常委会 及机关全体人员会议召开

  • 掌上济宁1月8日讯(记者 王粲)今天下午,市人大常委会及机关全体人员会议举行。会议深入学习贯彻市第十八届人民代表大会第二次会议精神,对大会服务保障工作和大会成果进行总结,并