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的面向对象编程方式学习笔记
Jul 12 Python
pandas数据预处理之dataframe的groupby操作方法
Apr 13 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
May 31 Python
Python实现的微信红包提醒功能示例
Aug 22 Python
python多线程高级锁condition简单用法示例
Nov 07 Python
详解python opencv、scikit-image和PIL图像处理库比较
Dec 26 Python
Python netmiko模块的使用
Feb 14 Python
文件上传服务器-jupyter 中python解压及压缩方式
Apr 22 Python
python re的findall和finditer的区别详解
Nov 15 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
Dec 31 Python
python 对xml解析的示例
Feb 27 Python
windows安装python超详细图文教程
May 21 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 $_SERVER["REQUEST_URI"]获取值的通用解决方法
2010/06/21 PHP
一个漂亮的php验证码类(分享)
2013/08/06 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2021/03/09 PHP
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
详解微信小程序 登录获取unionid
2017/06/27 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
JS实现移动端在线签协议功能
2019/08/22 Javascript
webpack HappyPack实战详解
2019/10/08 Javascript
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
Python动态加载模块的3种方法
2014/11/22 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
python特性语法之遍历、公共方法、引用
2018/08/08 Python
Python WEB应用部署的实现方法
2019/01/02 Python
对python周期性定时器的示例详解
2019/02/19 Python
解决Python3下map函数的显示问题
2019/12/04 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
2020/01/10 Python
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
结婚喜宴家长答谢词
2014/01/15 职场文书
销售经理工作职责
2014/02/03 职场文书
车辆工程专业求职信
2014/06/14 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
Python闭包的定义和使用方法
2022/04/11 Python
JAVA springCloud项目搭建流程
2022/05/11 Java/Android