Pythonic:
多用python自带的语法特性和库,如a,b=b,a。
Python没有switch,用if替代
注释原则:
注释和代码要有一定的距离
代码即注释,命名和函数名写得详细减少冗余注释
不要注释代码本身
及时丢弃过时的注释
给外部可以访问的函数和方法要添加文档注释docstring
空格和空行:
每行不超过80个字符
二元运算符(==,<,>,!=,+,-,*,/)左右两边留空格
编写函数的原则:
- 函数设计要尽量短小,嵌套层次不宜过深。
- 函数申明合理简单易用,名字能反映功能,参数个数少。
- 函数参数设计要考虑向下兼容。
- 一个函数只做一件事。
编码规范检查:
使用pytest-pep8或者pylint等工具
常见编码规范问题:
少空格,少空行
最后一行代码没有回车结尾
一行长度大于79个字符
安全问题:
当使用对象不是信任源,应该尽量避免使用eval,可以用安全性更好的ast.literal_eval替代。
类方法:@classmethod 使用在复用继承类的时候不想重写某个方法,想直接调用父类的某个方法可以不用实例化,就不能用@staticmethod而只能用@classmethod。
字符连接多用join而少用+,join的时间复杂度为O(n),+的时间复杂度为O(n^2),n为连接的字符串长度。