Python中super、pass、yield等关键字是如何实现的?
How are super, pass, yield and other keywords are implemented in Python?
我在最近的一次采访中被问到这个问题。而且我知道super是获取super class的方法,pass没有作用,只是关闭一个函数或class声明,yield用于generator。但我不知道它们是如何在 Python.
中实现的
我搜索了一下,只得到超级的答案:How is super() in Python 3 implemented?,谁能替别人回答?
super
不是 python 中的关键字,而是 int
或 range
中的变量。
pass
、yield
、def
、if
等关键字被解析器用来构建 AST(抽象语法树)。您可以使用 python 的 ast
模块自己玩转 AST。
然后代码生成器将 AST 转入一些较低级别的机器或虚拟机代码,准备执行。
我在最近的一次采访中被问到这个问题。而且我知道super是获取super class的方法,pass没有作用,只是关闭一个函数或class声明,yield用于generator。但我不知道它们是如何在 Python.
中实现的我搜索了一下,只得到超级的答案:How is super() in Python 3 implemented?,谁能替别人回答?
super
不是 python 中的关键字,而是 int
或 range
中的变量。
pass
、yield
、def
、if
等关键字被解析器用来构建 AST(抽象语法树)。您可以使用 python 的 ast
模块自己玩转 AST。
然后代码生成器将 AST 转入一些较低级别的机器或虚拟机代码,准备执行。