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更是可以了。