『Python高级编程』学习笔记之一: 第四章——选择好的名称

1、对于值不会发生改变的全局变量, 使用大写和一个下划线。 它告诉开发人员指定的变量代表一个恒定量。如: PRICE_
2、 << 是左移运算符, 如:
左移运算的两个操作数应为整数类型。第一个操作数是要进行移位操作的数,第二个操作数指定第一个操作数移动的位数。如果第二个操作数等于0则不发生任何移位。
应用举例:
一,问:计算表达式14 << 2的值。
答:表达式14 << 2的值为56,因为14(即二进制的00001110)向左移两位等于56(即二进制的00111000)。
二,问: 计算表达式8 >> 2的值。
答:表达式8 >> 2的值为2,因为8(即二进制的00001000)向右移两位等于2(即二进制的00000010)。

3、

>>> 1 | 2
3
>>> 1 & 2
0
4、私有变量应该使用前导下划线, 如: _message

5、如果该变量是在方法内部使用, 用来提供一个公共特性, 并且只扮演这个角色, 那么最好是将其声明为私有变量

6、只支持一个属性的特性是好的私有成员

7、特殊方法是以两个下划线开始和结束的, 常规方法不应该使用这种命名约定。 它们被用于操作符重载、 容器定义等。为了使程序易读, 它们应该被集中放在类定义的最前面。 对于常规的方法, 绝不应该使用这种名称。 

8、属性名称是用小写或者小写加上下划线命名的。 大部分时候, 它们表示对象的状态, 可以是一个名词或一个形容词, 在需要的时候也可以是一个小短语。 

9、 类的名称总是使用驼峰命名法(CamelCase), 当定义的是模块的私有类时, 还可能有一个前导下划线。 

10、类和实例变量常常是名词短语, 其使用逻辑与用动词短语命名方法一致。 

11、除了特殊模块__init__之外, 模块名称都使用不带下划线的小写字母命名。 如: os、 sys、 shutil

12、当模块对于包而言是私有的时候, 将添加一个前导下划线。 

13、当一个元素是用来保存布尔值时, “is”和“has”前缀提供一个自然的方式, 使其在命名空间中很容易被理解。 如: is_connected

14、当一个元素是用来保存一个序列时, 使用复数形式命名是个好主意。 如: connected_users = ['Tarek']

15、当一个变量时用来保存一个映射时, 应该尽可能使用显式的名称, 例如有一个用来保存个人地址的dict, 那么可以将其命名为 person_address

16、避免使用通用名称

17、 避免使用现有名称, 使用已经存在于上下文中的名称也是一个坏习惯, 因为它会使得在阅读程序时, 特别是调试时产生很多混论

18、对于关键字而言, 使用一个后缀下划线是避免冲突的一种方法, 如: or_

19、函数签名: 参数类型、 参数个数、 参数顺序    ps: http://bbs.csdn.net/topics/200079467

20、类的名称必须简明、精确, 并足以从中理解类所完成的工作。 常见的一个方法是表示其类型或特性的后缀, 例如: SQLEngine

21、对于基类而言, 可以使用一个Base或Abstract前缀, 如: BaseCookie

22、应尝试避免类及其特性名称之间的冗余, 如: SMTP.smtp_send()    # 命名空间中存在冗余信息

23、如果它们实现一个协议, 那么通常会使用lib后缀, 如smtplib

24、一个函数或一个方法的内容不应该超过一个屏幕, 也就是大约25~30行, 否则它将很难跟踪和理解

25、类的方法的数量应该有一定的限制。 当方法超过10个时, 即使创建者对其也很难做出完整的描绘。 一个常见的方法是分离功能并且在该类之外创建多个类。

26、一个模块的大小也应该有一定的限制。 当它超过500行时, 就应该被分解为多个模块。 

27、拥有的工具:

Pylint: 一个非常灵活的元代码分析器

CloneDigger: 一个重复代码侦测工具


你可能感兴趣的:(编程,python,python学习)