python基础===15条变量&方法命名的最佳实践
- 不同的代码段采用不同的命名长度。通常来说,循环计数器(loop counters)采用1位的单字符来命名,循环判断变量(condition/loop variables)采用1个单词来命名,方法采用1-2个单词命名,类采用2-3个单词命名,全局变量采用3-4个单词命名。
- 对变量采用具体的命名(specific names)方式,”value”, “equals”, “data”在任何情况下都不是一种有效的命名方式。
- 采用有意义的命名(meaningful names)。变量的名字必须准确反映它的含义和内容。
- 不要用 o_, obj_, m_ 等前缀命名。变量不需要前缀标签来表示自己是一个变量。
- 遵循公司的变量命名规则,在项目中坚持使用同一种变量命名方式。例如txtUserName, lblUserName, cmbSchoolType等,否则会对可读性造成影响,而且会令查找/替换工具(find/replace tools)不可用。
- 遵循当前语言的变量命名规则,不要不统一(inconsistently)地使用大/小写字母。例如:userName, UserName, USER_NAME, m_userName, username, …。
以Java为例:
* 类名使用驼峰命名法(Camel Case):VelocityResponseWriter
* 包名使用小写:com.company.project.ui
* 变量使用首字母小写的驼峰命名法(Mixed Case):studentName
* 常量使用大写:MAX_PARAMETER_COUNT = 100
* 枚举类(enum class)采用驼峰命名法,枚举值(enum values)采用大写。
* 除了常量和枚举值以外,不要使用下划线’_’ - 在同一个类不同的场景(contexts)中不要复用变量名。例如在方法、初始化方法和类中。这样做可以提高可读性和可维护性。
- 不要对不同使用目的的变量使用同一个变量名,而是赋予它们不同的名字。这同样对保持可读性和可维护性很重要。
- 变量名不要使用非ASCII字符(non-ASCII chars)。这样做可能会在跨平台使用时产生问题。
- 不要使用过长的变量名(例如50个字符)。过长的变量名会导致代码丑陋(ugly)和难以阅读(hard-to-read),还可能因为字符限制在某些编译器上存在兼容性问题。
- 仅使用一种自然语言(natural language)来命名变量。例如,同时使用德语和英语来命名变量会导致(理解)不一致和降低可读性。
- 使用有意义的方法名。方法名必须准确表达该方法的行为,在多数情况下以动词(verb)开头。(例如:createPasswordHash)
- 遵循公司的方法命名规则,在项目中坚持使用同一种方法命名方式。例如 getTxtUserName(), getLblUserName(), isStudentApproved(),否则会对可读性造成影响,而且会令查找/替换工具不可用。
- 遵循当前语言的变量命名规则,不要不统一地使用大/小写字母。例如:getUserName, GetUserName, getusername, …。
以Java为例:
* 方法使用首字母小写的驼峰命名法:getStudentSchoolType
* 方法参数使用首字母小写的驼峰命名法:setSchoolName(String schoolName) - 使用有意义的方法参数命名,这样做可以在没有文档的情况下尽量做到“自解释(documentate itself)”
本文摘自:http://codebuild.blogspot.com/2012/02/15-best-practices-of-variable-method.html
python基础===15条变量&方法命名的最佳实践的更多相关文章
- 15条变量&方法命名的最佳实践【转】
原文地址:15 Best Practices of Variable & Method Naming 不同的代码段采用不同的命名长度.通常来说,循环计数器(loop counters)采用1位 ...
- 2015/9/19 Python基础(15):变量作用域及生成器
变量作用域标识符的作用域是定义为其声明的可应用范围,或者即是我们所说的变量可见性.也就是,我们可以在程序的那个部分去访问一个制定的标识符.全局变量与局部变量定义在函数内的变量有局部作用域,在一个模块中 ...
- 十五. Python基础(15)--内置函数-1
十五. Python基础(15)--内置函数-1 1 ● eval(), exec(), compile() 执行字符串数据类型的python代码 检测#import os 'import' in c ...
- 『Python基础-3』变量、定义变量、变量类型、关键字Python基础-3』变量、定义变量、变量类型、关键字
『Python基础-3』变量.定义变量.变量类型.关键字 目录: 1.Python变量.变量的命名 2.变量的类型(Python数据类型) 3.Python关键字 1. Python 变量.变量的命名 ...
- python基础语法(变量与数据类型)
python基础语法(变量与数据类型) 一.python变量 python中的变量不需要声明.每个变量在使用钱都需要赋值,变量赋值以后,该变量才会被创建 在python中,变量就是变量,它没有类型,我 ...
- Atitit. 软件设计 模式 变量 方法 命名最佳实践 vp820 attilax总结命名表大全
Atitit. 软件设计 模式 变量 方法 命名最佳实践 vp820 attilax总结命名表大全 1. #====提升抽象层次1 2. #----使用通用单词1 3. #===使用术语..1 4. ...
- 说出几条 Java 中方法重载的最佳实践?
下面有几条可以遵循的方法重载的最佳实践来避免造成自动装箱的混乱. a)不要重载这样的方法:一个方法接收 int 参数,而另个方法接收 Integer 参 数. b)不要重载参数数量一致,而只是参数顺序 ...
- 《C+编程规范 101条规则、准则与最佳实践》笔记
<C+编程规范 101条规则.准则与最佳实践> 0.不要拘泥于小节(了解哪些东西不应该标准化) * 与组织内现有编码规范一致即可 * 包括但不限于: - 缩进 - 行长度 - 命名规范 - ...
- Python基础-数据类型和变量
数据类型 python中包含6种标准数据类型:1.Number 数值类型2.String 字符串类型3.List 列表类型4.Tuple 元祖类型5.Dict 字典类型6.Set 集合类型 注意:除了 ...
随机推荐
- POJ 3276 Face The Right Way(前缀和优化)
题意:有长度为N的01串,有一个操作可以选择连续K个数字取反,求最小的操作数和最小的K使得最后变成全1串.(N<=5000) 由于K是不定的,无法高斯消元. 考虑枚举K,求出最小的操作数. 显然 ...
- [十二]SpringBoot 之 servlet
Web开发使用 Controller 基本上可以完成大部分需求,但是我们还可能会用到 Servlet.Filter.Listener.Interceptor 等等. 当使用spring-Boot时,嵌 ...
- HttpHelper类及调用
首先列出HttpHelper类 /// <summary> /// Http操作类 /// </summary> public class HttpHelper { priva ...
- 【刷题】BZOJ 3238 [Ahoi2013]差异
Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao Sample Output 54 HINT 2<=N< ...
- 洛谷 P2261 [CQOI2007]余数求和 解题报告
P2261 [CQOI2007]余数求和 题意: 求\(G(n,k)=\sum_{i=1}^n k \ mod \ i\) 数据范围: \(1 \le n,k \le 10^9\) \(G(n,k)\ ...
- hadoop(二)hadoop集群的搭建
一.集群环境准备工作 1.修改主机名 在root 账户下 vi /etc/sysconfig/network 或者 sudo vi /etc/sysconfig/network 2.设置系统默认启 ...
- Codeforces 585E. Present for Vitalik the Philatelist(容斥)
好题!学习了好多 写法①: 先求出gcd不为1的集合的数量,显然我们可以从大到小枚举计算每种gcd的方案(其实也是容斥),或者可以直接枚举gcd然后容斥(比如最大值是6就用2^cnt[2]-1+3^c ...
- NOIP2015普及组T4推销员(暴力+线段树)
题目:阿明是一名推销员,他奉命到螺丝街推销他们公司的产品.螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户.螺丝街一共有N家住户,第i家住户到入口的距离为Si米.由于同一栋房子里 ...
- windows环境利用semophore机制进行线程同步
semophore是信号量的意思,常用于PV操作,所谓PV操作就是pend(等待,直到有资源可用,并且消耗资源) V就是释放资源. semophore和mutex区别,mutex本意为互斥,用于线程独 ...
- poj 3164 Command Network(最小树形图模板)
Command Network http://poj.org/problem?id=3164 Time Limit: 1000MS Memory Limit: 131072K Total Subm ...