0%

语法分析和词法分析

补充一点知识,下面这段代码:

1
2
3
4
def func():
print(foo)
def func():
print(foo)

运行过后程序并没有报错,虽然并没有变量或者函数命名为 foo。这是因为程序运行过程中,会有两个分析过程:语法分析和词法分析。

词法分析就是分析代码中是否所有的词语都符合规范,如果不规范,则会报错。

语法分析则是判断每个语句是否合乎语法规范。

上面的两个代码,词法分析是可以的,语法分析因为不会进入到函数体中,所以也不会出错,故而没有报错。