编写地道的Python代码 Code Like a Pythonista: Idiomatic Python

欢迎关注我的个人博客blog.timene.com


原文地址http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html,我挑一些自认为的重点翻译过来,总之,代码是写给人看的,不是写给机器执行的。


  • 留白(一)

        (1:每个缩进层级增加4个空格;

        (2:不要使用Tab键(我就一直使用Tab键,很方便,这条有点不合理);

        (3:不要混用空格和Tab键;

        (4:函数之间一个空行;

        (5:类之间两个空行;


  • 留白(二)

        (1:在dicts,lists,tuples,函数函数的“,”号之后,留一个空格;在dicts的“:”后面留一个空格;

        (2:赋值和比较的两次各留一个空格;

        (3:紧挨右括号或者紧挨左括号的两边不要留白,函数参数列表前不要留白;

        (4:docstrings内不要留白


  • 命名

        (1:joined_lower,函数、方法、和属性使用;

        (2:joined_lower 或者 ALL_CAPS,适合常量的定义(个人趋向于ALL_CAPS);

        (3:StudlyCaps,类的命名;

        (4:camelCase,一般不要使用,除非是延续旧代码习惯;

        (5:属性 interface, _internal, __private,尽量避免使用__private,原因不翻译了,好长的,照做就OK了。


  • 长句和连接

        (1:保持一行在80个字符以内;

        (2:(), [], {} 内有隐藏的跨行连接功能;

  • def __init__(self, first, second, third, 

  •                       fourth, fifth, sixth): 

  •     output = (first + second + third 

  •                      + fourth + fifth + sixth)

        (3:其他情况用"\"做连接用,注意,"\"必须是此行的最后一个字母,其后有任何字符连接的功能将失效。

  • VeryLong.left_hand_side \

  •         = even_longer.right_hand_side()


  • 长字符串

        (1:紧邻的字符串将被解析器合并为一个字符串;

        (2:r前缀的字符串不进行任何转义;

        (3:字符串变量的连接需要用"+";

        (4:跨行的字符串使用 """ """或者''' '''。 


  • 文档字符串和注释

         文档字符串(docstring)用来说明函数的用途和用法(给使用者看)

        (1:解释函数的功能;

        (2:介绍参数,返回值和可能抛出的异常;

        (3:最好说明调用方法;尤其当这个函数有一个很耦合的调用者

    

        注释用来说明函数的实现方法,用来维护代码(给开发和维护代码人看)

        (1:# !!! BUG: ...

        (2:# !!! FIX: This is a hack

        (3:# ??? Why is this here?


你可能感兴趣的:(python)