- N +

头,给我们一些改进 Python 程序的 91 个主张!超级大牛的由来!,吾爱破解

原标题:头,给我们一些改进 Python 程序的 91 个主张!超级大牛的由来!,吾爱破解

导读:

建议4:在代码中适当添加注释建议5:适当添加空行使代码布局更加合理建议6:编写函数的4个原则函数设计要尽量短小。...

文章目录 [+]

1.引论

主张1:了解Pythonic概念—-详见Python中的《Python之禅》

主张2:编写Pythonic代码

  • 防止不标准代码,比方只用大小写差异变量、运用简略混杂的变量名、惧怕过长变量名等。有时分长的变量名会使代码愈加具有可读性。
  • 深化学习Python相关常识,比方言语特性、库特性等,比方Python演化进程等。深化学习一两个业界公范冰冰奶奶认的Pythonic的代码库,比内衣工作如Flask等。

主张3:了解Python与C的不同之处,比方缩进与{},单引号双引号,三元操作符,Switch-Case句子等。

主张4:在代码中恰当增加注释

主张5:恰当增加空行使代码布局愈加合理

主张6:编写函数的4个准则

  • 函数规划要尽量矮小,嵌套层次不宜过深
  • 函数声明应该做到合理、简略、易用
  • 函数参数规划应该考虑向下兼容
  • 一个函数只做一件事,尽量确保函数粒度的共同性

主张7:将常量会集在一个文件,且常量名尽量运用全大写字母

2.编程惯用法

主张8:运用assert句子来发现问题,但要留意,断语assert会影响功率

主张9:数据交换值时不引荐运用暂时变量,而是直接a, b = b, a

主张10:充分运用慵懒核算(Lazy evaluation)的特性,然后防止不必要的核算

主张11:了解枚举替代完成的缺点(最新版Python中现已加入了枚举特性)

主张12:不引荐运用type来进行类型查看,由于有些时分type的成果并不一定牢靠。假如有需求,主张运用isinstance函数来替代

主张13:尽量将变量转化为浮点类型后再做除邝孝燕法(Python3今后不必考虑)

主张14:警觉eval(头,给咱们一些改善 Python 程序的 91 个主张!超级大牛的由来!,吾爱破解)函数的安全漏洞,有允许,给咱们一些改善 Python 程序的 91 个主张!超级大牛的由来!,吾爱破解类似于SQL注入

主张15:运用enumerate()一起获取序列迭代的索引和值

主张16:辨明==和is的适用场景,特别是在比较字符串等不可变类型变量时(详见谈论)

主张17:尽量运用Unicode。在Python2中编码是很让人头痛的一件事,但Python3就不必过多考虑了

Python学习群:683380553,有大牛答疑,有资源共享!是一个十分不错的沟通基地!欢迎喜爱Python的小伙伴!

主张18:构建合理的包层次来办理Module

3.根底用法

主张19:有控制的运用from…import句子,防止污染命名空间

主张20:优先运用absolute import来导入模块(Python3中现已移除了relative import)

主张21:i+=1不等于++i,在Python中,++i前边的加号仅表明正,不表明操作

主张22:习气运用with主动封闭资源,特别是在文件读写中

主张23:运用else子句简化循环(反常处理)

主张24:遵从反常处理的飞向你的床几点根本准则

  • 留意反常的粒度,try块中尽量少写代码
  • 慎重运用独自的except句子,或except Exception句子,而是定位到详细反常
  • 留意反常捕获的次序,在适宜的层次处理反常
  • 运用愈加友爱的反常信息,恪守反常参数的标准

主张25:防止finally中可能发生的圈套

主张26:深化了解None,正头,给咱们一些改善 Python 程序的 91 个主张!超级大牛的由来!,吾爱破解确判别方针是否为空。Python中下列数据会判别为空:

  • 常量 None
  • 常量 False
  • 任何办法的数值类型零,如 0、0L、0.0、0j
  • 空的序列,如 "、()、[]
  • 空的字典,如 {}
  • 当用户界说的类中界说了 nonzero() 和 len() 办法,而且该办法回来整数 0 或许布尔值 Fal李金羽和陈蓉结婚照se 的时分。

主张27:衔接字符串应优先运用join函数,而不是+操作

主张28:格式化字符串时尽量运用.format函数,而不是%办法

主张29:差异对待可变方针和不可变方针,特别是作为函数参数时

主张30:[], {}和():共同的容器初始化办法。运用列表解析可以使代码更明晰,一起功率更高

主张31:函数传参数,既不是传值阿娇13分钟也不是传引证,而是传方针或许说方针的引证

主张32:警觉默许参数潜在的问题,特别是当默许参数为可变方针时

主张33:函数中慎用变长参数*args和**kargs

  • 运用过于灵敏,在混合一般参数或许默许参数的状况下,变长参数意味着这个函数的签名
  • 够明晰,存在多种调用办法。别的变长参数可能会损坏程头,给咱们一些改善 Python 程序的 91 个主张!超级大牛的由来!,吾爱破解序的健壮性。
  • 假如一个函村欲数的参数列表很长,尽管可以经过运用 *args 和 **kwargs 来简化函数安瑟十三的界说,但这一般意味着这个函数可以有更好的完成办法,应该被重构。
  • 可变长参数合适在下列状况下运用:
  • 为函数增加一个装修器
  • 假如参数的数目不确定丫鬟阿福,可以考虑运用变长参数。
  • 用来完成函数的多态或许在承继状况下子类需求调用父类的某些办法的时分

主张34:深化了解str()和repr()的差异

  • 两者之间的方针不同:str首要面向客户,其意图是可读性,回来办法为用户友爱性和可读性都比较高的字符串办法;而repr是面向Python解说器或许说Python开发人员,其意图是准确性,其回来值表明Python解说器内部的界说
  • 在解说tyblr器尚洁怡中直接输入变量,默许调用repr函数,而print(var)默许调用str函数
  • repr函数的回来值一般可以用eval函数来复原方针
  • 两者别离调用方针的内建函数__str__()和__repr__()

主张35:辨明静态办法staticmethod和类办法classmetho男童被性侵d的运用场景

4.库

主张36:把握字符串的根本用法

主张37:按需挑选sort()女生啪啪和sorted()函数

  • sort()是列表在就地进行排序,所以不能排序元组等不可变类型。
  • sorted()可以排序恣意的可迭代类型,一起不改动原变量自身。

主张38:运用copy模块深复制方针,差异浅复制(shallow copy)和深复制(deep copy)

主张39:运用Counter进行计数核算,Counter是字典类的子类,在collections模块中

主张40:深化掌铁角飞地握ConfigPar沦为se

主张41:运用argparse模块处理命令行参数

主张42:运用pandas处理大型CSV文件

  • Python自身供给一个CSV文件处理模块,并供给reader、writer等函数。
  • Pandas可供给分块、兼并处理等,适用于孩次元数据量大的状况,且对二维数据操作更便利。

主张43:运用ElementTree解析XML

主张44:了解模块pickle的好坏

  • 优势:接口简略、各渠道通用、支撑的数据类型广泛、扩展性强
  • 下风:不确保数据操作的原子性、存在安全问题、不同言语之间不兼容

主张45:序列化的另一个挑选JSON模块:load和dump操作

主张46:运用traceback获取栈信息

主张47:运用logging记载日志信息

主张48:运用threading模块编写多线程程序

主张49:运用Queue模块使多线程编程更安全

5.规划形式

主张50:运用模块完成单例形式

主张51:用mixin形式让程序愈加灵敏

主张52:用发布-订阅形式完成松耦合

主张53:用状况形式美化代码

6.内部机制

主张54:了解build-in方针

主张55: init ()不是结构办法,了解__new__()与它之间的差异

主张56:了解变量的查找机制,即效果域

  • 部分效果域
  • 大局效果域
  • 嵌套效果域
  • 内置效果域

主张刑天拂晓57:为什么需求self参数

主张58:了解MRO(办法解析次序)与多承继

主张59:了解描述符机制

主张60:差异__getattr__()与__getattribute__()办法之间的差异

主张61:运用更安全的property

主张62:把握元类metaclass

主张63:了解Python方针协议

主张64:运用操作符重载完成中缀语法

主张65:了解你走了我哭了Python的迭代器协议

主张66:了解Python的生成器

主张67:根据生成器的协程和greenlet,了解协程、多线程、多进程之间的姜河娜差异

主张68:了解GIL的局限性

主张69:方针的办理和废物收回

7.运用东西辅佐项目开发

主张70:从PyPI装置第三方包

主张71:运用pip和yolk装置、办理包头,给咱们一些改善 Python 程序的 91 个主张!超级大牛的由来!,吾爱破解

主张7头,给咱们一些改善 Python 程序的 91 个主张!超级大牛的由来!,吾爱破解2:做paster创立包

主张73:了解单元测验的概念

主张74:为包编写单元测验

主张75:运用测验驱动开发(TDD)进步代码的可测性

主张76:运用Pylint查看代码风格

  • 代码风格查看
  • 代码过错查看
  • 发现重复以及不合理的代码,便利重构
  • 高度的可装备化和可定制化
  • 支撑各种IDE和编辑器的集成
  • 可以根据Python代码生成UML图
  • 可以与Jenkins等继续集成东西相结合,支撑主动代码查看

主张77:进行高效的代码查看

主张78:将包发布到PyPI

8.功能分析与优化

主张79:了解代码优化的根本准则

主张80:凭借功能优化东西

主张81:运用cProfile定位功能瓶颈

主张82:运用memory_profiler和objgraph分析内存运用

主张83:尽力下降算法复杂度

主张84:把握循环优化的根本技巧

  • 削减循环内部的核算
  • 将显式循环改为隐式循环,当然这会献身代码的可读性
  • 在循环中尽量引证部分变量
  • 重视内层嵌套循环

主张85:运用生成器进步功率

主张86:运用不同的数据头,给咱们一些改善 Python 程序的 91 个主张!超级大牛的由来!,吾爱破解结构优化功能

主张87:充分运用set的优势

主张88:运用multiprocessing模块战胜GIL缺点

主张89:运用线程池进步功率

主张90:运用C/C++模块扩展进步功能

主张91:运用Cythonb编写扩展模块

有好的文章希望我们帮助分享和推广,猛戳这里我要投稿

返回列表
上一篇:
下一篇: