详解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中使用Beautiful Soup库的超详细教程
Apr 30 Python
在Python的Django框架中创建语言文件
Jul 27 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
tensorflow saver 保存和恢复指定 tensor的实例讲解
Jul 26 Python
selenium python 实现基本自动化测试的示例代码
Feb 25 Python
关于TensorFlow新旧版本函数接口变化详解
Feb 10 Python
Python基础之字典常见操作经典实例详解
Feb 26 Python
Python写捕鱼达人的游戏实现
Mar 31 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
Apr 22 Python
Python基于QQ邮箱实现SSL发送
Apr 26 Python
如何在scrapy中捕获并处理各种异常
Sep 28 Python
python3操作redis实现List列表实例
Aug 04 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
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
dojo 之基础篇
2007/03/24 Javascript
Add a Picture to a Microsoft Word Document
2007/06/15 Javascript
javascript在事件监听方面的兼容性小结
2010/04/07 Javascript
js单例模式详解实例
2013/11/21 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
jQuery+easyui中的combobox实现下拉框特效
2015/02/27 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
详解node中创建服务进程
2017/05/09 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2019/04/01 Python
详解小白之KMP算法及python实现
2019/04/04 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
python django生成迁移文件的实例
2019/08/31 Python
python验证码图片处理(二值化)
2019/11/01 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
Django框架配置mysql数据库实现过程
2020/04/22 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
JVM是一个编译程序还是解释程序
2012/09/11 面试题
应届生体育教师自荐信
2013/10/03 职场文书
青年创业培训欢迎词
2014/01/10 职场文书
庆七一活动简报
2015/07/20 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书
Python初学者必备的文件读写指南
2021/06/23 Python