python标识符命名规范原理解析


Posted in Python onJanuary 10, 2020

这篇文章主要介绍了python标识符命名规范原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。

Python 中标识符的命名不是随意的,而是要遵守一定的命令规则,比如说:

1.标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。

2.标识符不能和 Python 中的保留字相同。有关保留字,后续章节会详细介绍。

3.Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。

例如,下面所列举的标识符是合法的:

UserID
name
mode12
user_age

以下命名的标识符不合法:

4word  #不能以数字开头
try   #try是保留字,不能作为标识符
$money   #不能包含特殊字符

4.在 Python 中,标识符中的字母是严格区分大小写的,也就是说,两个同样的单词,如果大小格式不一样,多代表的意义也是完全不同的。比如说,下面这 3 个变量之间,就是完全独立、毫无关系的,它们彼此之间是相互独立的个体。

number = 0
Number = 0
NUMBER = 0

5.Python 语言中,以下划线开头的标识符有特殊含义,例如:

·以单下划线开头的标识符(如 _width),表示不能直接访问的类属性,其无法通过 from...import* 的方式导入;

·以双下划线开头的标识符(如__add)表示类的私有成员;

·以双下划线作为开头和结尾的标识符(如 __init__),是专用标识符。

因此,除非特定场景需要,应避免使用以下划线开头的标识符。

另外需要注意的是,Python 允许使用汉字作为标识符,例如:

PHP中文网 = http://php.cn

但我们应尽量避免使用汉字作为标识符,这会避免遇到很多奇葩的错误。

标识符的命名,除了要遵守以上这几条规则外,不同场景中的标识符,其名称也有一定的规范可循,例如:

·当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母,例如 game_mian、game_register 等。

·当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线,例如 com.mr、com.mr.book 等。

·当标识符用作类名时,应采用单词首字母大写的形式。例如,定义一个图书类,可以命名为 Book。

·模块内部的类名,可以采用 "下划线+首字母大写" 的形式,如 _Book;

·函数名、类中的属性名和方法名,应全部使用小写字母,多个单词之间可以用下划线分割;

·常量命名应全部使用大写字母,单词之间可以用下划线分割;

有读者可能会问,如果不遵守这些规范,会怎么样呢?答案是程序照样可以运行,但遵循以上规范的好处是,可以更加直观地了解代码所代表的含义,以 Book 类为例,我们可以很容易就猜到此类与书有关,虽然将类名改为 a(或其它)不会影响程序运行,但通常不这么做。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python字符遍历的艺术
Sep 06 Python
Python设置Socket代理及实现远程摄像头控制的例子
Nov 13 Python
python脚本设置超时机制系统时间的方法
Feb 21 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
Jan 04 Python
浅谈python爬虫使用Selenium模拟浏览器行为
Feb 23 Python
Python Socket编程之多线程聊天室
Jul 28 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
Python2 Selenium元素定位的实现(8种)
Feb 25 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
May 15 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
Jun 18 Python
django有外键关系的两张表如何相互查找
Feb 10 Python
Python使用lambda抛出异常实现方法解析
Aug 20 Python
pytorch1.0中torch.nn.Conv2d用法详解
Jan 10 #Python
pytorch 利用lstm做mnist手写数字识别分类的实例
Jan 10 #Python
Tensorflow Summary用法学习笔记
Jan 10 #Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
Jan 10 #Python
python numpy数组复制使用实例解析
Jan 10 #Python
关于Pytorch的MNIST数据集的预处理详解
Jan 10 #Python
详解pycharm连接不上mysql数据库的解决办法
Jan 10 #Python
You might like
PHP中实现图片的锐化
2006/10/09 PHP
php学习笔记 数组的常用函数
2011/06/13 PHP
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
jquery 合并内容相同的单元格(示例代码)
2013/12/13 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
小程序实现录音功能
2020/09/22 Javascript
Python中的异常处理简明介绍
2015/04/13 Python
浅析Python数据处理
2018/05/02 Python
django 将model转换为字典的方法示例
2018/10/16 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
介绍一下MD5加密算法
2016/11/12 面试题
程序员经常用到的UNIX命令
2015/04/13 面试题
医学院护理专业应届生求职信
2013/11/12 职场文书
学生自我鉴定
2013/12/18 职场文书
毕业自我评价
2014/02/05 职场文书
会计学专业自荐信
2014/06/25 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
剑指Offer之Java算法习题精讲二叉树的构造和遍历
2022/03/21 Java/Android
python中的getter与setter你了解吗
2022/03/24 Python
python多次执行绘制条形图
2022/04/20 Python
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL