现在的位置: 首页 > 操作系统 > 正文

Python风格规范

2020年02月07日 操作系统 ⁄ 共 2513字 ⁄ 字号 评论关闭

Python风格规范

整理自Google开源项目指南

分号

  1. 不要在行尾加上分号,也不要用分号将两条命令分开;

行长度

  1. 每行长度不超过80个字符;
  2. 不要使用反斜杠连接行,可以使用圆括号来连接;

    # True x = ('This will build a very long long ' 'long long long long long long string')

  3. URL可以单独放一行,不需要分割;

括号

  1. 除非是实现行连接,否则不要在返回语句或者条件语句中使用括号;

    # wrong def foo(): if (True): print('True') return (True)

缩进

  1. 用4个空格来缩进代码,不要使用Tab。

空行

  1. 顶级定义(函数定义或者类定义)之间空两行,方法定义之间空一行;

空格

  1. 括号两边不要有空格;
  2. 不要在逗号,分号,冒号前面加空格,而是在后面加;
  3. 字典中冒号前面不用加空格,而是在后面加;
  4. 二元操作符两边都要加上一个空格,包括=、<、>、in、not in等等;
  5. 不要用空格垂直对齐多行间的标记;

    # True foo = 1000 # comment long_name = 2 # comment that should not be aligned

注释

  1. 一个函数除非是非常短小或者简单明了,否则都应该有注释;
  2. 函数注释需要包括说明、参数、返回、异常;

    def fetch_bigtable_rows(big_table, keys, other_silly_variable=None): """Fetches rows from a Bigtable. Retrieves rows pertaining to the given keys from the Table instance represented by big_table. Silly things may happen if other_silly_variable is not None. Args: big_table: An open Bigtable Table instance. keys: A sequence of strings representing the key of each table row to fetch. other_silly_variable: Another optional variable, that has a much longer name than the other args, and which does nothing. Returns: A dict mapping keys to the corresponding table row data fetched. Each row is represented as a tuple of strings. For example: {'Serak': ('Rigel VII', 'Preparer'), 'Zim': ('Irk', 'Invader'), 'Lrrr': ('Omicron Persei 8', 'Emperor')} If a key from the keys argument is missing from the dictionary, then that row was not found in the table. Raises: IOError: An error occurred accessing the bigtable.Table object. """ pass

  3. 类的注释包括说明,如果属性是公共属性,那么还需要包括属性;

    class SampleClass(object): """Summary of class here. Longer class information.... Longer class information.... Attributes: likes_spam: A boolean indicating if we like SPAM or not. eggs: An integer count of the eggs we have laid. """ def __init__(self, likes_spam=False): """Inits SampleClass with blah.""" self.likes_spam = likes_spam self.eggs = 0 def public_method(self): """Performs operation blah."""

  4. 块注释和行注释应该写代码做了什么(如果较复杂),而不是描述代码;

  5. 使用"""字符来标注;

  1. 如果一个类不继承自其它类,就显式的从object继承,不要什么都不写;

字符串

  1. 避免在循环中使用+来连接字符串,推荐使用数组的join;
  2. 在同一个文件中, 保持使用字符串引号的一致性;

TODO注释

  1. 为临时代码使用TODO注释, 它是一种短期解决方案;
  2. TODO注释应该在所有开头处包含”TODO”字符串,紧跟着是用括号括起来的你的名字,email地址或其它标识符,然后是一个可选的冒号,接着必须有一行注释,解释要做什么。

    # True # TODO(kl@gmail.com): Use a "*" here for string repetition. # TODO(Zeke) Change this to use relations.

导入格式

  1. 每个导入应该独占一行;

    # False import os, sys # True import os import sys

  2. 导入应该按照最通用到最不通用的顺序进行排序,首先是1. 标准库;2.第三方库;3. 模块库;

语句

  1. 除了exp if else,语句最好单独一行;

命名

  1. 使用单下划线开头表示模块变量或者函数是protected的;
  2. 使用双下划线开头表示实例变量或者方法是类内私有的;
  3. 类名应该使用大写字母开头的单词;
  4. 模块名和函数名和参数名应该使用小写加下划线的方式;

Main

  1. 为了避免倒入模块时被执行,需要加上mian的判断;

    def main(): ... if __name__ == '__main__': main()

本文永久更新链接地址:http://www.xuebuyuan.com/Linux/2017-09/146888.htm

以上就上有关Python风格规范的相关介绍,要了解更多Python风格规范,Python风格规范,编程,Linux编程,Linux Shell,Android,Android教程,JAVA,C语言,Python,HTML5内容请登录学步园。

抱歉!评论已关闭.