Pythonb编码规范
本编码规范是对知道创宇研发技能表中提供的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')
Pythonb编码规范的更多相关文章
- Android的编码规范
一.Android编码规范 1.学会使用string.xml文件 在我看来,当一个文本信息出现的次数大于一次的时候就必须要使用string.xml 比如一个保存按钮 , 不规范写法: <Butt ...
- PHP 高级编程(1/5) - 编码规范及文档编写
PHP 高级程序设计学习笔记20140612 软件开发中的一个重要环节就是文档编写.他可以帮助未来的程序维护人员和使用者理解你在开发时的思路.也便于日后重新查看代码时不至于无从下手.文档还有一个重要的 ...
- 【原】JAVA SE编码规范
/* * 编码规范: * 1.所有的命名遵循"见名知意"的原则 * 2.所有的命名不允许使用汉字或拼音 * 3.Java的工程命名建议使用小写,比如:oa.crm.cms... * ...
- 浅谈Android编码规范及命名规范
前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...
- PHP编码规范PSR-2
.note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...
- Objective-C开发编码规范【转载】
概要 Objective-C是一门面向对象的动态编程语言,主要用于编写iOS和Mac应用程序.关于Objective-C的编码规范,苹果和谷歌都已经有很好的总结: Apple Coding Guide ...
- 前端编码规范之CSS
"字是门面书是屋",我们不会去手写代码,但是敲出来的代码要好看.有条理,这还必须得有一点约束~ 团队开发中,每个人的编码风格都不尽相同,有时候可能存在很大的差异,为了便于压缩组件对 ...
- 前端编码规范之JavaScript
上次浅谈了下关于CSS的编码规范,大部分童鞋持赞同意见,仍存在一些童鞋不太理解这些规范的意义. 如果是个人或者小作坊开发,其实这些所谓的编码规范也没啥意思,因为大家写好的代码直接就给扔到网上去了,很少 ...
- Java Script 编码规范【转】
Java Script 编码规范 以下文档大多来自: Google JavaScript 编码规范指南 Idiomatic 风格 参考规范 ECMAScript 5.1 注解版 EcmaScript ...
随机推荐
- HDU 1166 敌兵布阵 【线段树-点修改--计算区间和】
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- 如何修改windows系统远程桌面默认端口
此文档概述如何修改windows系统远程桌面的默认端口,众所周知windows系统默认的远程桌面端口是3389,这样对于开启远程桌面的计算机有一定的安全威胁,修改远程桌面的默认端口可以提高系统的安全性 ...
- Ubuntu无法使用root用户登陆的解决办法
对于一个新安装的Ubuntu操作系统,经常会遇到无法使用root用户ssh连接操作系统,比如说root用户的密码被拒绝等原因. 面对这种问题,介绍一下Ubuntu无法使用root登陆解决 1. 修改 ...
- showModalDialog改进版,包括Chrome下的特殊处理
父页面: if(window.ActiveXObject){ //IE $("#choose_entp").click(function(){ ...
- wareshark网络协议分析之DHCP
声明:本文关于DHCP协议介绍部分摘自百度百科 一.DHCP协议介绍: DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用 ...
- repo 小结
repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载.管理Android项目的软件仓库. 1. 下载 repo 的地址: http://android.git.kerne ...
- 在环境变量里设置VI中TAB缩进
终端上的tab键默认是缩进8个空格的(记住8个空格不等于一个tab, tab和空格不是一个概念) 一般设置vim的tab(制表符)的缩进的时候都这样:set tabstop=4 ” 表示让tab的宽度 ...
- iphone的一些坑
1.<div contenteditable></div>需要添加css user-select: text;才能输入. 2.css属性animation一直存在,添加了-we ...
- Pycharm更换pip源为国内
Python里的pip是官方自带的源,国内使用pip安装的时候十分缓慢,所以最好是更换成中国国内的源地址. 目前国内靠谱的 pip 镜像源有: 清华: https://pypi.tuna.tsingh ...
- Hive数据分析——Spark是一种基于rdd(弹性数据集)的内存分布式并行处理框架,比于Hadoop将大量的中间结果写入HDFS,Spark避免了中间结果的持久化
转自:http://blog.csdn.net/wh_springer/article/details/51842496 近十年来,随着Hadoop生态系统的不断完善,Hadoop早已成为大数据事实上 ...