交付:五条验收条款一起过

交付:五条验收条款一起过

最后一步:把这条路线的五个结论各写成一条可以重跑的验收条款。

阅读更多 →
第四步:证明名字在编译期就分好了

第四步:证明名字在编译期就分好了

第四步:局部名单和"要往外找"的名单,各有几个名字。

阅读更多 →
第三步:证明编译期真的动了手

第三步:证明编译期真的动了手

第三步:拿常量折叠当证据——取两段源码常量表里最大的一项。

阅读更多 →
第二步:换成四站的细尺子

第二步:换成四站的细尺子

第二步:用 stage_of 再判一次同样四段,看看细尺子比粗尺子多分出了什么。

阅读更多 →
第一步:先把编译期和运行期分开

第一步:先把编译期和运行期分开

交付流程第一步:拿最粗的那把尺子,把四段代码分成"编译期挂"和"运行期挂"两堆。

阅读更多 →
五段代码的完整判定

五段代码的完整判定

把这条路线用的五段代码,一次性判完: import ast, io, tokenize LEX = 'x = (1 + 2' SYN = 'if x > 1\n

阅读更多 →
⚠️ 碰到一个报错,第一步该判断什么

⚠️ 碰到一个报错,第一步该判断什么

程序报错了。最有用的第一个判断是【0】。

阅读更多 →
一份「源码到运行」的说明该讲清什么

一份「源码到运行」的说明该讲清什么

要向别人解释一段代码是怎么跑起来的,最该讲清的是【0】。

阅读更多 →
第四站:真的执行,看它找到了谁

第四站:真的执行,看它找到了谁

把编译产物执行一次,环境里的 print 换成一个假的,看看运行期到底找到了什么、传了什么进去。

阅读更多 →
第三站:编译产物里留下了什么

第三站:编译产物里留下了什么

编译之后,名字和常量被分开存了。各取第一项出来。

阅读更多 →