块名、包名:
小写字母,单词之间用_分割
ad_stats.py
类名:
(每个)单词首字母都要大写
AdStats
ConfigUtil
全局变量名:
大写字母,单词之间用_分割
NUMBER
COLOR_WRITE
普通变量:
小写字母,单词之间用_分割
this_is_a_var
get_name()
2.私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。
3.变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。
小写字母,单词之间用_分割
ad_stats.py
类名:
(每个)单词首字母都要大写
AdStats
ConfigUtil
全局变量名:
大写字母,单词之间用_分割
NUMBER
COLOR_WRITE
普通变量:
小写字母,单词之间用_分割
this_is_a_var
常量
常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL。
普通函数:
和普通变量一样:get_name()
count_number()
ad_stat()
异常
以“Error”作为后缀。
*注意*:
1.不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。2.私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。
3.变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。
4.关于下划线:
(1.以单下划线开头,是弱内部使用标识,from M import * 时,将不会导入该对象。
(2.以双下划线开头的变量名,主要用于类内部标识类私有,不能直接访问。
(3.双下划线开头且双下划线截尾的命名方法尽量不要用。
即:
1. object # public
2. __object__ # special, python system use, user should not define like it
3. __object # private (name mangling during runtime)
4. _object # obey python coding convention, consider it as private
<pre style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-size: 11.8518514633179px; line-height: 13.3333330154419px; font-family: 'Courier New' !important;"><span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0); font-size: 12px !important; line-height: 1.5 !important;">#</span><span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0); font-size: 12px !important; line-height: 1.5 !important;">module_1</span>
<span style="margin: 0px; padding: 0px; font-size: 12px !important; line-height: 1.5 !important;">
var_1
_var_2
</span><span style="margin: 0px; padding: 0px; color: rgb(128, 0, 128); font-size: 12px !important; line-height: 1.5 !important;">__var_3</span>
#module_2_error
'''
以下划线开头的变量不会从外部导入
'''
from module_1 import *
print var_1
print _var_2 #将报错
print __var_3 #将报错
#module_2_solution
from module_1 import * # 导入所有的不是下划线开头的对象
from module_1 import _var_2, __var_3 # 显式导入下划线开头的对象
print var_1
print _var_2 # 不会报错
print __var_3 # 不会报错
#module_error
'''
双下划线开头的变量不能被直接访问
'''
class MyClass():
def __init__(self):
self.var_1 = 1
self._var_2 = 2
self.__var_3 = 3
if __name__=="__main__":
obj = MyClass()
print obj.var_1
print obj._var_2
print obj.__var_3 # 这里将会出错