python保留字_开始了类定义_为什么在python中不能将类属性命名为保留字?

要理解这个限制背后的原因,您需要了解计算机语言是如何工作的。在

最初,您有一个文本文件。您将此文本提供给一个字符串标记器(称为lexer),它可以识别单词、运算符、注释、数字、字符串等词汇元素。基本上,lexer除了字符外什么都不知道。它将文本文件转换为类型化标记流。在

这个令牌流随后被送入解析器。解析器处理更高层次的构造,如方法定义、类定义、导入语句等。例如,解析器知道函数定义以“def”开头,后跟某个名称(类型标识符的标记),然后是冒号和一堆缩进行。这意味着一些单词,如“def”、“return”、“if”是为解析器保留的,因为它们是语言语法的一部分。在

解析的结果是一个称为抽象语法树(AST)的数据结构。AST直接对应于文本文件的内容和结构。在AST中,没有关键字,因为它们已经达到了目的。另一方面,标识符(变量和函数的名称等)被保留,因为编译器/解释器以后需要它们。在

简而言之,关键字的存在是为了给文本一个结构。没有结构,程序就不可能确定地分析文本。如果你试图用一个关键字来做其他事情,它会破坏结构。结构分析后,就不再需要它们了。从本质上说,这意味着语言的作者必须画一条线,并为结构保留一些单词,同时让程序员自由使用所有其他单词。在

这不仅仅是朝鲜半岛特有的。每种语言都是一样的。如果没有文本文件,就不需要关键字。从技术上讲,语言有可能克服这种局限性,但它会使事情复杂化,没有任何实际的好处。有一个与其他语言分离的解析器是非常有意义的,你不希望它有任何其他的方式。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值