zoukankan      html  css  js  c++  java
  • 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')
    
    

    感谢读者的来访,希望这篇博客能够帮到你,持续关注请使用RSS订阅或者关注我的账号:)

    本博客所有内容系作者原创,转载务必注明出处以对作者表示尊重!

    热爱互联网的 二两丶

  • 相关阅读:
    codevs 1102 采药 2005年NOIP全国联赛普及组
    codevs 1058 合唱队形 2004年NOIP全国联赛提高组
    动归题目
    友好城市//未测,不知对错
    codevs 1044 拦截导弹 1999年NOIP全国联赛提高组
    codevs 5294 挖地雷
    codevs 1576 最长严格上升子序列
    [BZOJ3289]Mato的文件管理
    [CodeVS1299]切水果
    [TYVJ1473]校门外的树3
  • 原文地址:https://www.cnblogs.com/erliang/p/4065605.html
Copyright © 2011-2022 走看看