• Python 标识符


    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 版本中还将定义更多此类名称。

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

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

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

    6 文章其他地址

    6.1 微信公众号:码农阿杰

    6.2 CSDN 博客

    7 参考资料

    7.1 Python 3.8.2 documentation

  • 相关阅读:
    sipp3.6对freeswitch进行压力测试
    随机四则运算
    大一暑假第八周周进度总结报告
    大一暑假第七周周进度总结报告
    学生信息管理系统java测试报告
    原码、反码、补码解读
    大一暑假第六周周进度总结报告
    01Java方法
    00java语法基础和课后实践
    验证码和判断回文(递归)
  • 原文地址:https://www.cnblogs.com/manongajie/p/12686814.html
Copyright © 2020-2023  润新知