详解python里的命名规范


Posted in Python onJuly 16, 2018

文件名

全小写,可使用下划线

应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。

模块

与包的规范同。如mymodule。

总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线。

函数&方法

函数名应该为小写,可以用下划线风格单词以增加可读性。如:myfunction,my_example_function。
*注意*:混合大小写仅被允许用于这种风格已经占据优势的时候,以便保持向后兼容。

函数和方法的参数

总使用“self”作为实例方法的第一个参数。总使用“cls”作为类方法的第一个参数。
如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线好于使用缩写或奇怪的拼写。

全局变量

对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线。
*注意*:应避免使用全局变量

变量

变量名全部小写,由下划线连接各个单词。如color = WHITE,this_is_a_variable = 1

*注意*:

1.不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。
2.私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。
3.变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。

常量

常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL。

异常

以“Error”作为后缀。

缩写

命名应当尽量使用全拼写的单词,缩写的情况有如下两种:

1.常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。
2.命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。

例如:

function 缩写为 fn
text 缩写为 txt
object 缩写为 obj
count 缩写为 cnt
number 缩写为 num,等。
前导后缀下划线
一个前导下划线:表示非公有。
一个后缀下划线:避免关键字冲突。
两个前导下划线:当命名一个类属性引起名称冲突时使用。
两个前导和后缀下划线:“魔”(有特殊用图)对象或者属性,例如__init__或者__file__。绝对不要创造这样的名字,而只是使用它们。

*注意*:关于下划线的使用存在一些争议。

特定命名方式

主要是指 __xxx__ 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如

class Base(object):
def __init__(self, id, parent = None):
self.__id__ = id
self.__parent__ = parent
def __message__(self, msgid):
# …略

其中 __id__、__parent__ 和 __message__ 都采用了系统保留字命名法。

附:Google Python命名规范

module_name, package_name, ClassName, method_name, ExceptionName, function_name, GLOBAL_VAR_NAME, instance_var_name, function_parameter_name, local_var_name.

总结

以上所述是小编给大家介绍的python里的命名规范,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
在Python中使用SQLite的简单教程
Apr 29 Python
python简单获取数组元素个数的方法
Jul 13 Python
python判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
Python的面向对象编程方式学习笔记
Jul 12 Python
Python解析命令行读取参数--argparse模块使用方法
Jan 23 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
关于Python形参打包与解包小技巧分享
Aug 24 Python
PyTorch和Keras计算模型参数的例子
Jan 02 Python
python shell命令行中import多层目录下的模块操作
Mar 09 Python
Django rest framework分页接口实现原理解析
Aug 21 Python
python前后端自定义分页器
Apr 13 Python
Python 2.7中文显示与处理方法
Jul 16 #Python
Python定时任务sched模块用法示例
Jul 16 #Python
python中使用print输出中文的方法
Jul 16 #Python
django用户登录和注销的实现方法
Jul 16 #Python
Flask框架实现给视图函数增加装饰器操作示例
Jul 16 #Python
flask框架使用orm连接数据库的方法示例
Jul 16 #Python
flask框架实现连接sqlite3数据库的方法分析
Jul 16 #Python
You might like
PHP中,文件上传
2006/12/06 PHP
PHP 上传文件大小限制
2009/07/05 PHP
PHP下常用正则表达式整理
2010/10/26 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
JS自动适应的图片弹窗实例
2013/06/29 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
基于input动态模糊查询的实现方法
2017/12/12 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
PyQt5每天必学之单行文本框
2018/04/19 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
电子商务助理求职自荐信
2014/04/10 职场文书
防暑降温通知书
2015/04/27 职场文书
mysql中整数数据类型tinyint详解
2021/12/06 MySQL
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript