Pythonb编码规范

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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

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

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

1. 一致性的建议打破一条既定规则的两个好理由当应用这个规则将导致代码可读性下降,即使对于某人来说他已经习惯于按照这条规则来阅读代码了为了和周围的代码保持一致而打破规则(也许是历史原因)2. 代码的布局缩进4个空格代码行行最大长度 : 79字符

推荐长度 : 72字符

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

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

一行空行分割方法或函数

额外空行分割相关函数群

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

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

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

空格紧贴各类括号

紧贴逗号,分号,冒号前

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

紧贴再索引或切片括号

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

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

3. 注释注释块与相应代码有着相同缩进行内注释与代码被注释代码同行,以"#"+" "开头文档注释结尾处 """ 单独成行版本注记模块文档字符串之后,所有代码之前,上下空行分割4. 命名约定模块名 : 不含下划线 ; 小写 ; 剪短

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

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

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

继承私有 : 双下划线开头

非公有 : 单下划线开头

命名冲突不降低可读性,能改就改,不能就在末尾加单个下划线或者数字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')

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航