Pythonb编码规范

本编码规范是对知道创宇研发技能表中提供的PythonCodingRule.pdf文档进行凝练和总结出来的结果,感谢知道创宇的Geek精神与分享精神

此规范较为严格,严格规定了编码格式和命名规则,仅适于本人,对新手可能有跟多的参考意义

尊重原创,本文及演示代码转载需注明


1. 一致性的建议

  • 打破一条既定规则的两个好理由
  1. 当应用这个规则将导致代码可读性下降,即使对于某人来说他已经习惯于按照这条规则来阅读代码了
  1. 为了和周围的代码保持一致而打破规则(也许是历史原因)

2. 代码的布局

  1. 缩进
  • 4个空格
  1. 代码行
  • 行最大长度 : 79字符

  • 推荐长度 : 72字符

  • 分割方式 : "" , "()" , "{}"

  1. 空行
  • 两行空行分割顶层函数和类的定义

  • 一行空行分割方法或函数

  • 额外空行分割相关函数群

  • 类定义与第一个方法定义需要一行空行

  1. 编码
  • 万年 "UTF-8"
  1. 导入
  • 先import标准模块,再from ... import第三方模块(绝对路径) ,最后from ... import自建模块

  • 每组导入空一行,一行导入一个包[模块,类等]

  1. 空格
  • 紧贴各类括号

  • 紧贴逗号,分号,冒号前

  • 紧贴函数调用参数列表前开放式括号

  • 紧贴再索引或切片括号

  • 二元操作符或运算符或逻辑等两边各留一个空格

  • 默认参数或关键参数"="不留空格

3. 注释

  1. 注释块
  • 与相应代码有着相同缩进
  1. 行内注释
  • 与代码被注释代码同行,以"#"+" "开头
  1. 文档注释
  • 结尾处 """ 单独成行
  1. 版本注记
  • 模块文档字符串之后,所有代码之前,上下空行分割

4. 命名

  1. 约定
  • 模块名 : 不含下划线 ; 小写 ; 剪短

  • 类名,异常名 : 首字母大写单词串

  • 方法,函数 : 第一个字母小写的首字母大写单词串

  • 属性,实例,变量 : 小写字母串

  1. 继承
  • 私有 : 双下划线开头

  • 非公有 : 单下划线开头

  1. 命名冲突
  • 不降低可读性,能改就改,不能就在末尾加单个下划线或者数字

5. 设计建议

  • 使用"is"或"is not"进行对"None"的单值比较

  • 使用字符串方法代替字符串模块

  • 使用startswith()和endswith()检查前后缀而不是使用切片

  • 使用isinstance()判断对象是否是字符串而不是使用type()

  • 判断空序列或字典不要使用len()

  • 书写字符串文字不要依赖有意义的后置空格

  • 不要用"=="比较布尔值

示例代码


#!/usr/bin/Python

# -*- coding: utf-8 -*-



'''Pyhton Coding Rule

    这是Python编码规范的示例代码,它将向你展示Python编程中一些代码的标准格式

帮助提升代码的可读性以及编程效率

'''



__version__ = "vision: 1.0"



import sys

import urllib



from os import path

from types import StringTypes



from inexistence import *



class  BaseRules():

    '''class BaseRules()

        这是一个用于演示的类

    '''



    def __init__(self, input_=''):

        self.input = input_

        self.__spacerule = 4

        self.__maxwords = 79

        self.__spliteways = ['\\', '()', '{}']



    def getSpaceRule(self):

        print self.__spacerule



    def getMaxWords(self):

        print self.__maxwords



    def getSpliteWays(self):

        for spliteway in self.__spliteways:

            print spliteway





class PythonRules(BaseRules):

    '''class PythonRules

    '''



    def __init__(self, input_, output):

        BaseRules.__init__(input_)

        self.output = output

        if isinstance(self.output, StringTypes):

            if self.output:

                if self.output.startswith(' '):

                    print 'Do not start with space !'

                if self.output.endswith(' '):

                    print 'Do not end with space !'

        else:

            self.output = ['What',

                    'the',

                    'fuck',

                    'you',

                    'input',

                    '?']               # 这里其实不太美观~\(≧▽≦)/~啦

            for word in self.output:

                print word,





if  __name__ == '__main__':

    baserule = BaseRules()

    pythonrule = PythonRules('bibibabibo', 'I am erliang')

转载于:https://www.cnblogs.com/erliang/p/4065605.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值