[读书]编写高质量的python程序的91个建议(1)
1,理解pythonic(python化)的概念
- 美胜丑,显胜隐,简胜杂,杂胜乱,平胜陡,疏胜密(以最小,最明显的逻辑单元来写方法)
- 找到简单问题的一个方法,最好是唯一的方法(正确的解决之道)
- 难以解释的实现,源自不好的主意;如有非常 棒的主意,它的实现肯定易于解释(一个需求过来,先看自己给自己在逻辑上走的通)
- 交换变量使用a,b = b,a
- 使用with 语句来做为python资源的安全关闭文件描述符
- 使用formate代替%s 等字符串格式化操作
- 包和模块的命名采用小写,单数,而且短小
- 包通常仅作为命令空间,如果包含空的__init__.py文件
2, 编写pythonic代码
- 好好修炼内功,从以下几个方面出发
- 不要害怕过长的变量名
- 避免使用容易引起混淆(每个func都要明确的指明方法的做用,不要是使用大而范的命名)
- 避免只用大小写来区分不同的对象
- 全面掌握python提供的所有特性,包括语言特性与库特性:
- python 2.x doc
- 深入学习比较公认的pythonic的代码,比如Flask,gevent和requests等
- 查看如下的代码库
- 非常高质量的代码库
3,理解python与c语言的不同之处
- python的底层都是用c语言实现的
- 关于缩进与{} ,如果使用pycharm来写代码,记得将Tab与4个space 空格符相等,这样可以很方便的实现代码的格式化,另外,一定要将space空格显示出来,这样才能很清晰的看到空白处是制表符还是一个空格,关于如果调,请参考我的这篇文章舒服的pycharm设置
- ‘ 与" ,在c or C# 之中,’ ‘代表的是单个字符,"" 这个里面代表的是字符串,在python之中,单引号与双引号没有明显的区别。
- 三元操作符 “?:" ,python下是没有三元操作符的,不过可以很方便的写成 x if c else y
- switch … case ,python之中没有c语言之中分支语句,不过python里面有一个更好的实现方式
def f(x):
return {
0:'you input is zero',
1:'you input is one ',
2:'you input is two'
}.get(x,"i don't know what you are input")
使用dict 实现值的映射,其实这里面不仅仅可以输入一个返回值 ,也可以直接返回python的一等公民:函数
def fp(x):
return {
0:lambda y:y+1,
1:lambda y:y+2,
2:lambda y:y+3
}.get(x,lambda y:y)(x)
当然,函数可以映射,那class更是可以了。
- 原文作者:大鱼
- 原文链接:https://brucedone.com/archives/679/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。