编写高质量代码的91个建议笔记

第1章 引论

  • 建议1:理解Pythonic概念

    ①定义:其实这是一个比较抽象的概念,但是大致可以定义为:充分体现python自身特色的代码风格

    ②代码风格:

    比如两个变量的交换,C代码:

    int a = 1,b = 2;
    int tmp = a;
    a = b;
    b = tmp;

    体现pythonic的python代码:

    a, b = b, a

    我们应该充分利用好pyhon简洁的语法,而不是过分使用各种奇淫技巧,也就是我们常说的代码可读性。

    ③python的标准库:python之所以比其他语言更为简洁,我认为可能就是因为它拥有大量完整的库来供我们使用,善用好这些库对编写pythonic代码有极大的帮助

  • 建议2:编写Pythonic代码

    ①命名:命名不要有歧义,不要害怕过长的命名

    ②遵守PEP8规范

  • 建议3:理解Python与C语言的不同之处

    ①缩进与{}:C,java使用{}分隔代码块,python使用缩进来分隔代码块,因此缩进在python中需要尤为注意,它可能会给程序带来意想不到的风险

    ②'' 与 “”,在C和Java中,单引号代表char类型,双引号代表String类型,但在python中没有明显的区别,但是在实际项目中,我们也应该保持代码风格的统一,不要单双引号混用。

    ③三元操作符:c和java:C?A:B,当满足C条件执行A,不满足执行B,python:A if C else B

  • 建议4:在代码中适当添加注释

    python种三种注释:块注释:行注释以及文档注释

    注释意义:帮助自己或他人更好的理解代码

    注意注释位置以及是否必要

  • 建议5:通过适当添加空行使代码布局更为优雅、合理

    ①在一段代码表达完一个完整的思路之后,可添加空白行

    ②避免代码行过长

    ③注意上小文的易理解性:被调用的一般放在调用者的下方

    ④逗号和分号之前不要有空格,运算符前后推荐空格

  • 建议6:编写函数的4个原则

    ①嵌套不宜过深

    ②函数申明简洁明了,参数不应过多,参数太多对调用者来说需要花费更多精力去理解每个参数的意义。

    ③函数参数设计考虑向下兼容。

    ④函数职能单一:一个函数只做一件事情。

  • 建议7:将常量集中到一个文件

    ①python中用户可定义的都是变量,只有python内建命名空间存在一部分常量:如True,False,None等。

    ②定义在一个文件的好处是易于维护,一般项目中defines文件干的就是这个事。

第2章 编程惯用法

  • 建议8:利用assert语句来发现问题

    例如1==2返回False时,就会引发AssertionError,后面的表达式常用来传递具体的异常信息

    assert 1==2,"not equals"
  • 建议9:数据交换值的时候不推荐使用中间变量

    使用 x, y = y, x 比 tmp = x, x = y, y = tmp 会具有更好的性能

  • 建议10:充分利用Lazy evaluation的特性

    Lazy evaluation常被译为“延迟计算”或“惰性计算”,指的是在真正需要执行的时候才去计算表示式的值。

    ①避免不必要的计算,带来性能上的提升:在python条件表达式中,if x and y,当x返回False时,不会再计算y,if x or y,当X为True时不会再计算y,在实际编程中我们可以利用好这一特性。

    ②节省空间,使得无限循环的数据结构成为可能:python中的生成器,使用yield语句返回一个迭代中的返回值,并记录返回的位置,在下一次迭代时,从该位置处开始执行,因此它只需要在每一次计算的时候才返回需要的元素。

  • 建议11:理解枚举替代实现的缺陷

  • 建议12:不推荐使用type来进行类型检查

    基于内建类型拓展的用户自定义类型,type函数不能准确返回结果,可使用isinstance函数来替代

  • 建议13:尽量转换为浮点类型后再做除法

    因为python中没有类型说明,因此当两个int型相除时也会返回一个int型(他并不知道你需要返回一个float),因此比如3/2在python2中/表示向下取整得到1,因此为了得到较为准确的结果需要将操作数转换为浮点数再做运算,pytho

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值