1。一般规范:命名只能以字母或_下划线开头名称不能包含空格名称不能与关键字重合#错误类名class4_Person():pass#错误函数名defpretty():pass2。文件名全部小写,可以使用下划线。3.包package_name应该是一个简短的小写名称。如果下划线可以提高可读性,可以加上,比如mypackage4。模块module_name与包规范一致,如mymoduleimportdecoderimporthtml_parser#不推荐这种命名importDecoder5。类ClassName总是使用首字母大写的单词串,如MyClass(驼峰命名),内部类可以使用额外的前导下划线classPerson():passclassElc_Car(Car):passclass_PrivateCar(Car):pass6。函数/方法function_name全部小写。如果有多个单词,用_下划线分隔。私有函数前面可以加下划线,如下:defcalculator():passdefprivate_computer():passclassPerson():def_private_func():pass注意:混合大小写只允许在这种风格占主导地位时使用,在为了保持向后兼容7.变量var_name变量名一般小写,多个单词用_下划线隔开,比如color=WHITE,this_is_a_variable=1无论是类成员变量还是全局变量,都不要使用m或g前缀。私有类成员用单个下划线前缀标记,定义了更多的公共成员,定义了更少的私有成员。变量名不应该带有类型信息,因为Python是一种动态类型的语言。比如iValue、names_list、dict_obj等都是坏名字。count=0animal_count=1008。全局变量全部大写,多个单词用_下划线分隔。如果需要防止在模块中导入全局变量,可以添加前导下划线、GLOBAL_VAR_NAME、_GLOBAL_VAL9。常量和常量名全部大写,用下划线分隔连接单个单词,如MAX_OVERFLOW、TOTAL。10.ExceptionExceptionNameissuffixedwithErrortry:passexceptValueErrorasresult:pass11.Parameterfunction_parameter_name如果函数的参数名与保留关键字冲突,通常使用后缀下划线12.常用缩写要全拼命名缩写有两种:常用的缩写,如XML、ID等,命名时只应首字母大写,如XmlParser。名称中包含一个长词,一个词被缩写。在这种情况下,应使用常规缩写。例如:function缩写为fntext缩写为txtobject缩写为objcount缩写为cntnumber缩写为num13。前导后缀下划线表示一个前导下划线:表示非公共一个后缀下划线:避免关键字冲突两个前导下划线:命名类属性时导致名称冲突时使用两个前导和尾部下划线:具有特殊用途的对象或属性,例如__init__和__str__14。具体命名方式主要参考__xxx__形式的系统保留字命名法。这种命名也可以用在项目中。它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如classBase(object):def__init__(self,id,parent=None):self.__id__=idself.__parent__=parentdef__message__(self,msgid):\#...slightly#where__id__,__parent__and__message__都使用系统保留字命名法。15.附:谷歌Python命名约定module_name,package_name,ClassName,method_name,ExceptionName,function_name,GLOBAL_VAR_NAME,instance_var_name,function_parameter_name,local_var_name参考Python命名约定pythonnamingconvention-2
