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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用友企业互联网化新阶段:软件、云服务、金融

    用友企业互联网化新阶段:软件、云服务、金融

    2022年3月5日
    44
  • 最新最全Golang面试题(精通篇)

    最新最全Golang面试题(精通篇)Golang面试问题汇总通常我们去面试肯定会有些不错的Golang的面试题目的,所以总结下,让其他Golang开发者也可以查看到,同时也用来检测自己的能力和提醒自己的不足之处,欢迎大家补充和提交新的面试题目.1.Golang中除了加Mutex锁以外还有哪些方式安全读写共享变量Golang中Goroutine可以通过Channel进行安全读写共享变量,还可以通过原子性操作进行.2.无缓冲Chan的发送和接收是否同步ch:=make(chanint)无缓冲的channel由于没有缓

    2022年6月25日
    23
  • 神经网络激活函数汇总(Sigmoid、tanh、ReLU、LeakyReLU、pReLU、ELU、maxout)

    神经网络激活函数汇总(Sigmoid、tanh、ReLU、LeakyReLU、pReLU、ELU、maxout)神经网络激活函数汇总(Sigmoid、tanh、ReLU、LeakyReLU、pReLU、ELU、maxout)常规sigmoid和tanhsigmoid特点:可以解释,比如将0-1之间的取值解释成一个神经元的激活率(firingrate)缺陷:有饱和区域,是软饱和,在大的正数和负数作为输入的时候,梯度就会变成零,使得神经元基本不能更新。只有…

    2025年5月25日
    4
  • 数据挖掘的9大成熟技术和应用

    数据挖掘的9大成熟技术和应用http://ihoge.cn/2018/DataMining.html数据挖掘的9大成熟技术和应用基于数据挖掘的9大主要成熟技术以及在数据化运营中的主要应用:1、决策树2、神经网络3、回归4、关联规则5、聚类6、贝叶斯分类7、支持向量机8、主成分分析9、假设检验1 决策树决策树(DecisionTree)是一种非常成熟的、普遍采用的数据挖…

    2022年6月15日
    45
  • 朱晔和你聊Spring系列S1E8:凑活着用的Spring Cloud(含一个实际业务贯穿所有组件的完整例子)…[通俗易懂]

    朱晔和你聊Spring系列S1E8:凑活着用的Spring Cloud(含一个实际业务贯穿所有组件的完整例子)…[通俗易懂]朱晔和你聊Spring系列S1E8:凑活着用的Spring Cloud(含一个实际业务贯穿所有组件的完整例子)…

    2022年4月20日
    42
  • 微信小程序必用接口「建议收藏」

    微信小程序必用接口获取openiduni-app示例获取openidopenid是微信用户的一个唯一的标识,只针对当前的微信号有效。微信开发时,用户使用小程序需要授权,这时就要用到openid进行绑定这个用户。可用于永久标记一个用户,同时也是微信JSAPI支付的必传参数。一般都是将code值传到后端去获取openid,因为在前端可能会被抓包或爬取到你的appid和secret,不安全,如果放在后端获取openid,除非你的服务器被攻击了,不然就是安全的。下面的实例是在前端直接获取的,这个明白后,可

    2022年4月11日
    42

发表回复

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

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