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

作者:python大师 时间:2023-05-28 04:06:42 

这篇文章主要介绍了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(或其它)不会影响程序运行,但通常不这么做。

来源:https://www.cnblogs.com/daniumiqi/p/12155999.html

标签:python,标识,符,命名,规范
0
投稿

猜你喜欢

  • Vue 通过自定义指令回顾v-内置指令(小结)

    2023-07-02 16:56:42
  • python实现日历效果

    2022-07-20 22:22:57
  • 当达到输入长度时表单自动切换焦点

    2024-05-02 17:29:33
  • python学习之whl文件解释与安装详解

    2021-11-01 18:09:14
  • Python数据类型转换详解

    2021-03-04 04:11:13
  • AJAX简单应用实例-弹出层

    2011-04-14 10:55:00
  • d3.js实现简单的网络拓扑图实例代码

    2024-05-09 10:19:58
  • python安装读取grib库总结(推荐)

    2021-11-07 08:13:03
  • 一文教你如何优雅处理Golang中的异常

    2024-02-13 21:32:33
  • Pytorch自定义CNN网络实现猫狗分类详解过程

    2023-10-27 19:51:02
  • Python中eval函数的表达式作用示例

    2022-06-14 02:18:32
  • python3中TQDM库安装及使用详解

    2023-02-17 20:05:55
  • 详解基于Node.js的微信JS-SDK后端接口实现代码

    2024-05-02 17:37:47
  • cropper js基于vue的图片裁剪上传功能的实现代码

    2024-05-11 09:10:50
  • python 解决flask 图片在线浏览或者直接下载的问题

    2022-05-15 06:24:57
  • MySQL之主键索引排序失效问题

    2024-01-19 10:38:53
  • Python用requests模块实现动态网页爬虫

    2022-10-15 16:27:06
  • Python文件操作之二进制文件详解

    2021-10-23 16:44:47
  • jquery的父、子、兄弟节点查找,节点的子节点循环方法

    2023-07-02 05:34:40
  • Python实现多进程的四种方式

    2022-03-14 10:48:46
  • asp之家 网络编程 m.aspxhome.com