kir*_*off 3 python compiler-construction interpreter compilation
我写了一个错误的Python例程:false而不是False.但是,在汇编时没有发现它.该程序必须运行到此行以通知错误行为.
为什么会这样?Python解释器/编译器中的东西是如何使它工作的呢?
你有一些参考吗?
由于Python的动态特性,在编译时无法检测未定义的名称.只检查语法; 如果语法很好,编译器会生成字节码,Python开始执行代码.
在给定的示例中,您将获得对全局名称的引用false.只有当字节码解释器尝试实际访问此全局名称时,才会出现错误.
为了说明,这是一个例子.你认为以下代码执行正常吗?
globals()["snyfr".decode("rot13")] = 17
x = false
Run Code Online (Sandbox Code Playgroud)
它实际上是,因为第一行动态生成一个名为的变量false.
| 归档时间: |
|
| 查看次数: |
1428 次 |
| 最近记录: |