当前位置: 首页 > news >正文

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

CSDN网 = "http://CSDN.net"

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

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

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


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

http://www.lryc.cn/news/159145.html

相关文章:

  • 对 fastq 和 bam 进行 downsample
  • 网络爬虫:如何有效的检测分布式爬虫
  • elementUI可拖拉宽度抽屉
  • OpenPCDet系列 | 8.4 nuScenes数据集数据调用和数据分析
  • WeiTitlePopupWindow
  • qemu/kvm学习笔记
  • android 车载widget小部件部分详细源码实战开发-千里马车载车机framework开发实战课程
  • 如何使用CSS画一个三角形
  • 第15章_锁: (表级锁、页级锁、行锁、悲观锁、乐观锁、全局锁、死锁)
  • python音频转文字调用baidu
  • 靶场溯源第二题
  • mysql 的增删改查以及模糊查询、字符集语句的使用
  • Python Django框架中文教程:学习简单、灵活、高效的Web应用程序框架
  • Docker认识即安装
  • chrome 谷歌浏览器 导出插件拓展和导入插件拓展
  • fastjson漏洞批量检测工具
  • Vue进阶(六十七)页面刷新路由传参丢失问题分析及解决
  • 阿里云ubuntu服务器搭建ftp服务器
  • 03 卷积操作图片
  • 软考:中级软件设计师:程序语言基础:表达式,标准分类,法律法规,程序语言特点,函数传值传址
  • Java“牵手”1688商品详情数据,1688商品详情API接口,1688API接口申请指南
  • stable diffusion实践操作-批次出图
  • LeetCode热题100 【cpp】题解(一)哈希表和双指针
  • Python爬虫常见代理池实现和优化
  • 前端面试的话术集锦第 3 篇:进阶篇上
  • 【文字到语音的论文总结】
  • E. Data Structures Fan(思维 + 异或前缀和)
  • 初学python爬虫学习笔记——爬取网页中小说标题
  • The WebSocket session [x] has been closed and no method (apart from close())
  • 前端实现展开收起的效果 (react)