Python 标识符详解[学习 Python 必备基础知识][看此一篇就够了]「建议收藏」

Python 标识符详解[学习 Python 必备基础知识][看此一篇就够了]「建议收藏」标识符就是一个名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。就好像我们人一样,需要起个名字,便于称呼、指代。在给标识符命名的时候还要尽量做到“见名知其意”,例如`book_name`我们看到之后,就能大概猜出是“书的名字”相关的内容;`user_name`我们看到之后,能大概猜出是“用户名字”相关的内容等等。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

您的“关注”和“点赞”,是信任,是认可,是支持,是动力…

如意见相佐,可留言。
本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新。

1 Python 标识符概述(正式介绍)

标识符 (或者叫做 名称) 由以下词法定义进行描述。

  • Python 中的标识符语法是基于 Unicode 标准附件 UAX-31,并加入了下文所定义的细化与修改;更多细节还可参见 PEP 3131 。
    在 ASCII 范围内 (U+0001…U+007F),可用于标识符的字符与 Python 2.x 一致: 大写和小写字母 A 至 Z,下划线 _ 以及数字 0 至 9,但不可以数字打头。

  • Python 3.0 引入了 ASCII 范围以外的额外字符 (见 PEP 3131)。这些字符的分类使用包含于 unicodedata 模块中的 Unicode 字符数据库版本。Unicode 4.1 中的所有可用标识符字符列表参见以下非规范 HTML 文件链接 https://www.dcl.hpi.uni-potsdam.de/home/loewis/table-3131.html

  • 标识符的长度没有限制。对大小写敏感。

  • 所有标识符在解析时会被转换为规范形式 NFKC;标识符的比较都是基于 NFKC。

2 Python 标识符的简单理解(非正式介绍)

标识符就是一个名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。

就好像我们人一样,需要起个名字,便于称呼、指代。

在给标识符命名的时候还要尽量做到“见名知其意”,例如 book_name我们看到之后,就能大概猜出是“书的名字”相关的内容;user_name我们看到之后,能大概猜出是“用户名字”相关的内容等等。

3 Python 标识符命名规则

Python 标识符的命名不是乱来的,而是要遵守一定的命令规则,如下所示:

  • 标识符是由字母(A–Z 和 a–z)、下划线和数字组成。如果标识符中出现除了这 3 类字符之外的其他字符,就肯定是不合法标识符。

  • 标识符的第一个字符不能是数字。

  • 标识符不能和 Python 关键字相同。

  • 标识符中的字母是严格区分大小写的。

  • 以下划线开头的标识符有特殊含义,除非特定场景需要,应避免使用以下划线开头的标识符。具体内容请参见本文第 5 小节 保留的标识符类。

  • 标识符可以是汉字。但我们应尽量避免使用汉字作为标识符,这会避免遇到很多没必要的错误。

实例如下所示,

(1)合法的标识符:

name
User
user_name
user_age
BOOK
book_name
book13

(2)不合法的标识符:

user&book  # & 不属于标识符的组成字符,即包含非法字符
4name  # 不能以数字开头
and  # and是关键字,不能作为标识符

(3)标识符中的字母是严格区分大小写的:
也就是说,两个同样的单词,如果大小格式不一样,就代表不同的标识符。如下所示:

name = '码农阿杰'
Name = '码农阿杰'
NAME = '码农阿杰'

以上三个变量“name”代表不同的标识符,互不影响,相互是独立的。你明白了吗?
(4)标识符可以是汉字

# 以汉字作为变量名(标识符)
微信公众号 = '码农阿杰'
print(微信公众号)

运行结果:

码农阿杰

标识符可以是汉字。但我们应尽量避免使用汉字作为标识符,这会避免遇到很多没必要的错误。

4 Python 标识符的其他命名规则(参考)

标识符的命名,除了要遵守上文所述的几条规则外,在不同场景中其命名也是有一定规则的,如下所示:

  • 函数名、类中属性名、类中的方法名:全部使用小写字母,多个字母之间可用下划线_分隔,例如user_ageuserbook_num等。
  • 常量名:全部使用大写字母,多个字母之间可用下划线_分隔,例如DEF_NUMBERAGEYEAR等。
  • 类名:单词首字母大写,例如UserBookBlog等。
  • 包名:应尽量简短,全部使用小写字母,多个字母间可用.分隔,例如com.baiducom.pythonnet.csdn.editor等。
  • 模块名:应尽量简短,全部使用小写字母,多个字母间可用下划线_分隔,例如 user_logingame_loginbook_name等。

5 保留的标识符类

Python 中除了关键字之外,还有一些标识符类具有特殊的含义。这些标识符类的命名模式是以下划线字符开头和结尾,如下所示:

  • _*
    以单下划线开头的标识符。

    表示不能直接访问的类属性,它不会被 from module import * 导入。

    特殊标识符_在交互式解释器中被用来存放最近一次求值结果;它保存在 builtins 模块中。当不处于交互模式时,_ 无特殊含义也没有预定义。

    _ 作为名称通常用于连接国际化文本。

  • __*__
    以双下划线开头和结尾的标识符。

    系统定义的名称,是专用标识符。这些名称由解释器及其实现 (包括标准库) 所定义。未来的 Python 版本中还将定义更多此类名称。

    任何不遵循文档指定方式使用 __*__名称的行为都可能导致无警告的出错。

  • __*
    以双下划线开头的标识符。

    类的私有名称。这种名称在类定义中使用时,会以一种混合形式重写以避免在基类及派生类的 “私有” 属性之间出现名称冲突。

【友情链接】

微信公众号:码农阿杰

博客园

【参考资料】

Python 官网

Python 3.8.2 documentation

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195663.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月12日 下午9:01
下一篇 2025年10月12日 下午9:43


相关推荐

  • c语言三目运算符例子_单目运算符与双目运算符

    c语言三目运算符例子_单目运算符与双目运算符1.运算方向从左往右,从右往左结合,只有一个表达式被计算百度百科:三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。对于条件表达式b?x:y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值…

    2026年4月17日
    4
  • centos7.0 可以访问HTML文件,不能访问PHP文件,因为php-fpm没有扩展包

    centos7.0 可以访问HTML文件,不能访问PHP文件,因为php-fpm没有扩展包

    2021年10月19日
    51
  • Redis分布式锁及其应用场景

    Redis分布式锁及其应用场景RedLock 分布式锁 基于 Redis 实现分布式锁的方式名叫 Redlock 安全特性 互斥访问 即永远只有一个 client 能拿到锁 避免死锁 最终 client 都可能拿到锁 不会出现死锁的情况 即使原本锁住某资源的 clientcrash 了或者出现了网络分区 两个完全不连通的区域 美国的网咱们登不上去 容错性 只要大部分 Redis 节点存活就可以正常提供服务 Redis 集群及应用场景热点数据存取数据优先从 Redis 操作 如果不存在再从文

    2026年3月18日
    1
  • TSQL–标示列、GUID 、序列

    TSQL–标示列、GUID 、序列

    2021年8月27日
    57
  • jar包与war包的区别

    jar包与war包的区别ar包:对于学习java的人来说应该并不陌生。我们也经常使用也一些jar包。其实jar包就是java的类进行编译生成的class文件就行打包的压缩包而已。里面就是一些class文件。当我们自己使用maven写一些java程序,进行打包生成jar包。同时在可以在其他的工程下使用,但是我们在这个工程依赖的jar包,在其他工程使用该jar包也要导入。这是jar的里面的class文件war包:其实就是一个web程序进行打包便于部署的压缩包,里面包含我们web程序需要的一些东西,其中包括web.xml的配

    2022年5月23日
    47
  • librosa能量_librosa语音信号处理

    librosa能量_librosa语音信号处理librosa 是一个非常强大的 python 语音信号处理的第三方库 本文参考的是 librosa 的官方文档 本文主要总结了一些重要且常用的功能 先总结一下本文中常用的专业名词 sr 采样率 hop length 帧移 overlapping 连续帧之间的重叠部分 n fft 窗口大小 spectrum 频谱 spectrogram 频谱图或叫做语谱图 amplitude 振幅 mono 单声道 ste

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号