详解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实现的一只从百度开始不断搜索的小爬虫
Aug 13 Python
跟老齐学Python之有容乃大的list(4)
Sep 28 Python
在Python中使用元类的教程
Apr 28 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
May 21 Python
Python抓取框架 Scrapy的架构
Aug 12 Python
python matplotlib 注释文本箭头简单代码示例
Jan 08 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
Dec 12 Python
pycharm中使用anaconda部署python环境的方法步骤
Dec 19 Python
python之验证码生成(gvcode与captcha)
Jan 02 Python
Appium+Python自动化测试之运行App程序示例
Jan 23 Python
python安装scipy的方法步骤
Jun 26 Python
教你利用Selenium+python自动化来解决pip使用异常
May 20 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
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
使用Apache的rewrite技术
2006/06/22 PHP
php上的memcache和memcached两个pecl库
2010/03/29 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
PHP中list方法用法示例
2016/12/01 PHP
jQuery ui 1.7更新小结
2009/08/15 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
Python数据可视化库seaborn的使用总结
2019/01/15 Python
Python 分发包中添加额外文件的方法
2019/08/16 Python
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
PHP中如何使用Cookie
2015/10/28 面试题
小学教师师德反思
2014/02/03 职场文书
大学运动会入场词
2014/02/22 职场文书
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android
Oracle使用别名的好处
2022/04/19 Oracle