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

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 允许使用汉字作为标识符,例如:

博客园 = "https://www.cnblogs.com/"

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


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

  • 当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母,例如 game_mian、game_register 等。
  • 当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线,例如 com.mr、com.mr.book 等。
  • 当标识符用作类名时,应采用单词首字母大写的形式。例如,定义一个图书类,可以命名为 Book。
  • 模块内部的类名,可以采用 "下划线+首字母大写" 的形式,如 _Book;
  • 函数名、类中的属性名和方法名,应全部使用小写字母,多个单词之间可以用下划线分割;
  • 常量命名应全部使用大写字母,单词之间可以用下划线分割;

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

The desire of his soul is the prophecy of his fate
你灵魂的欲望,是你命运的先知。

 

Python | 标识符命名规范的更多相关文章

  1. 8.Python标识符命名规范

    简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量.函数.类.模块以及其他对象的名称. Python 中标识符的命名不是随意的,而是要遵守一定的命令规则,比如 ...

  2. 【Java学习笔记之二】java标识符命名规范

    什么是标识符 就是程序员在定义java程序时,自定义的一些名字.标识符可以应用在类名.变量.函数名.包名上. 标识符必须遵循以下规则 标识符由26个英文字符大小写(a~zA~Z).数字(0~9).下划 ...

  3. [转载]python 变量命名规范

    原文地址:python 变量命名规范作者:loveflying python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范.于是自己总结了一些,可供参考. 模块名: 小写字母,单词之间用 ...

  4. Day01_04_Java标识符命名规范

    Java标识符命名规范 什么是标识符? 在程序中程序员有权利自己命名的单词都是标识符(类名 方法名 变量名 常量名 接口名) 标识符命名规则 标识符用作给变量.类和方法命名 标识符以由大小写字母.数字 ...

  5. Go 指针,标识符命名规范及关键字

    #### Go 指针,标识符命名规范,关键字,运算符回顾了一下之前写的文章,以及考虑到后期的内容较多, 从这篇开始逐渐增加文章内容; 这篇我们主要学习一Go 中的指针,标识符关键字以及运算符##### ...

  6. [No000064]python 变量命名规范

    python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范.于是总结了一些,供参考. 模块名: 模块应该使用尽可能短的.全小写命名,可以在模块命名时使用下划线以增强可读性.同样包的命名也 ...

  7. python 变量命名规范

    python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范.于是总结了一些,供参考. 模块名: 模块应该使用尽可能短的.全小写命名,可以在模块命名时使用下划线以增强可读性.同样包的命名也 ...

  8. Python变量命名规范

    模块名: 小写字母,单词之间用_分割 ad_stats.py 包名: 和模块名一样 类名: 单词首字母大写 AdStats ConfigUtil 全局变量名(类变量,在java中相当于static变量 ...

  9. Java语言基本语法(一)————关键字&标识符(Java语言标识符命名规范&Java语言的包名、类名、接口名、变量名、函数名、常量名命名规则 )

    一.关键字 关键字的定义和特点 定义:被Java语言赋予特殊含义,用做专门用途的字符串(单词). 特点:关键字中所有字母均为小写 下面列举一些常用的关键字. 用于定义数据类型的关键字:byte.sho ...

随机推荐

  1. PTA——c++2017Final 圆周率山

    为了参加学校的社团风采展,怡山小学数学组的同学们决定画一座圆周率山,以宣传圆周率. 已知圆周率为:3. 1415926535 8979323846 2643383279 5028841971 6939 ...

  2. Linux从头学13:想彻底搞懂“系统调用”的底层原理?建议您别错过这篇【调用门】

    作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). ...

  3. 学习laravel总结中...

    1,安装homestead :mac环境 https://learnku.com/docs/laravel-development-environment/5.5/development-enviro ...

  4. linux 修改文件名称的三中方法

    一:rename "old.html" "oldd.HTML" *html参数.有什么.改为什么 ,目标文件: 二 : #!/bin/sh Dirname=&q ...

  5. python 建站教程

    主端:安装nginx uwsgi django pymysql mysql安装mysql到http://repo.mysql.com/里面找 mysql57-community-release-el7 ...

  6. 2020牛客NOIP赛前集训营-提高组(第三场)C-牛半仙的妹子Tree【虚树,最短路】

    正题 题目链接:https://ac.nowcoder.com/acm/contest/7609/C 题目大意 给出\(n\)个点的一棵树,\(m\)个时刻各有一个操作 标记一个点,每个点被标记后的每 ...

  7. Python实现一个简单三层神经网络的搭建并测试

    python实现一个简单三层神经网络的搭建(有代码) 废话不多说了,直接步入正题,一个完整的神经网络一般由三层构成:输入层,隐藏层(可以有多层)和输出层.本文所构建的神经网络隐藏层只有一层.一个神经网 ...

  8. Spirit带你彻底搞懂JS的6种继承方案

    JavaScript中实现继承的6种方案 01-原型链的继承方案 function Person(){ this.name="czx"; } function Student(){ ...

  9. Visual Studio Code (VSCode) 配置 C/C++ 开发编译环境

    前言 工作多年,突然发现很多C++的基础都忘记了,加之C++不断更新换代后的各种新特性,于是想重拾C++的基础学习.虽然现在工作都是Linux平台,但考虑到个人方便,自己也仅仅想重温语法,家里家外都可 ...

  10. 实现js读取Excel数据

    如何通过js去读取excel中的数据 <!DOCTYPE html> <html lang="en"> <head> <meta char ...