zoukankan      html  css  js  c++  java
  • flask编程规范

     
    Flask遵循的是Pocoo的编程规范,Pocoo遵守PEP8的规范。
     
    1.总体布局
         缩进:
              4个空格。不使用制表符,没有例外。(使用制表符也不会出错,但是千万不能混用
         
         最大行长:
              软限制为 79 个字符,不超过 84 个字符。
              尝试合理放置 break 、 continue 和 return声明来避免代码过度嵌套。
     
         续行:
              可以使用反斜杠来续行,续行应对齐最后一个点号或等于号,或者缩进四个空格。
              如果你在括号内的换行,那么续行应对齐括号。
              对于有许多元素的元组或列表,在起始括号后立即换行。
     
         空行:
              顶层函数和类由两个空行分隔,其它一个空行。不要使用过多空行来分隔代码逻辑段。
     
    2.表达式和语句
         常规空格规则:
              不是单词的一元运算符不使用空格(例如: - 、 ~ 等等),在圆括号也是这样。
              用空格包围二元运算符。
         
         禁止Yoda语句:
              永远不要用变量来比较常量,而是用常量来比较变量。(跟C语言推荐的方式相反
     
         比较:
              针对任意类型使用 == 和 !=。
              针对单一类型使用 is 和 is not (例如: foo is not None )
              永远不要与 True 或 False 作比较(例如永远不要写 foo == False , 而应当写not foo)
     
         排除检验:
              使用 foo not in bar 而不是 not foo in bar
     
         实例检验:
              使用 isinstance(a, C) 而不是 type(A) is C ,但是通常应当避免检验实例,而应当检验特性。
     
    3.命名约定
         类名:CamelCase ,缩写词大写( HTTPWriter 而不是 HttpWriter )(驼峰法
         变量名:lowercase_with_underscores(linux建议的方式
         方法和函数名:lowercase_with_underscores
         常量:UPPERCASE_WITH_UNDERSCORES
         预编译正则表达式:name_re
     
         保护的成员以单个下划线作为前缀,混合类则使用双下划线。
         如果使用关键字作为类的名称,那么在名称末尾添加下划线。(建议不用关键字做类名
         与内置构件冲突是允许 的,请 一定不要用在变量名后添加下划线的方式解决冲突。
         如果函数需要访问 一个隐蔽的内置构件,请重新绑定内置构件到一个不同的名字。
     
         函数和方法参数:
              类方法:cls作为第一个参数
              实例方法:self作为第一个参数
              用于属性的lamda表达式应该把第一个参数替换为x ,
              像 display_name =property(lambda x: x.real_name or x.username) 中一样
     
    4.文档字符串
         文档字符串约定:
              所有的文档字符串为 Sphinx 可理解的 reStructuredText 格式。
              它们的形态 因行数不同而不同。
              如果只有一行,三引号闭合在同一行,否则开头的三引号 与文本在同一行,结尾的三引号独立一行。
              (最后使用Sphinx生成代码的参考文档
      def foo():
      """This is a simple docstring"""
     
    def bar():
      """This is a longer docstring with so much information in there that it spans three lines. In this case the closing triple quote is on its own line. """
              模块头:
                   模块头包含一个 utf-8 编码声明(即使没有使用非 ASCII 字符,也始终推 荐这么做)和一个标准的文档字符串。
    # -*- coding: utf-8 -*-
    """ package.module ~~~~~~~~~~~~~~
     
      A brief description goes here.
     
      :copyright: (c) YEAR by AUTHOR. :license: LICENSE_NAME, see LICENSE_FILE for more details."""
           谨记使用合适的版权和许可证文件以利于通过 Flask 扩展审核。
     
    5.注释
         注释的规则与文档字符串类似。两者都使用 reStructuredText 格式。
         如果一个 注释被用于一个说明类属性,在起始的井号( # )后加一个冒号:
    class User(object):
      #: the name of the user as unicode string
      name = Column(String)
      #: the sha1 hash of the password + inline salt
      pw_hash = Column(String)
  • 相关阅读:
    计算机原理 3.4 补码一位乘法
    信号与系统 第二章(2.1)
    信号与系统(1.6、1.7)
    第17章 使用BIOS进行键盘输入和磁盘读写
    第16章 直接定址表
    聚类:主要聚类算法
    机器学习——输入空间、特征空间、输出空间
    机器学习——线性回归
    机器学习——梯度下降法
    深度学习——概率与信息论
  • 原文地址:https://www.cnblogs.com/yaoel/p/5111460.html
Copyright © 2011-2022 走看看