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中的元类(metaclass)
Feb 14 Python
讲解Python中for循环下的索引变量的作用域
Apr 15 Python
python利用paramiko连接远程服务器执行命令的方法
Oct 16 Python
浅谈python jieba分词模块的基本用法
Nov 09 Python
Django框架的中的setting.py文件说明详解
Oct 15 Python
对Python中内置异常层次结构详解
Oct 18 Python
python实现字符串加密 生成唯一固定长度字符串
Mar 22 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 Python
python上selenium的弹框操作实现
Jul 13 Python
pycharm 的Structure界面设置操作
Feb 05 Python
python 如何获取页面所有a标签下href的值
May 06 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 session处理的定制
2009/03/16 PHP
php常用hash加密函数
2014/11/22 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
laravel学习教程之关联模型
2016/07/30 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
2016/07/07 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
jQuery中$原理实例分析
2018/08/13 jQuery
JS操作JSON常用方法(10w阅读)
2020/12/06 Javascript
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
2018/07/25 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
2020/06/04 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
教师自我鉴定
2013/12/13 职场文书
中考冲刺决心书
2014/03/11 职场文书
工厂标语大全
2014/10/06 职场文书
简单的辞职信范文(2016最新版)
2015/05/12 职场文书
治理商业贿赂工作总结
2015/08/10 职场文书