编译Python,为什么忽略了一些错误的东西?

编译Python,为什么忽略了一些错误的东西?,第1张

概述我写了一个错误的 Python例程:false而不是False.但是,在汇编时没有发现它.该程序必须运行到此行以通知错误行为. 为什么会这样? Python解释器/编译器中的东西是如何使它工作的呢? 你有一些参考吗? 由于Python的动态特性,在编译时无法检测未定义的名称.只检查语法;如果语法很好,编译器会生成字节码,Python开始执行代码. 在给定的示例中,您将获得对全局名称false的引用 我写了一个错误的 Python例程:false而不是False.但是,在汇编时没有发现它.该程序必须运行到此行以通知错误行为.

为什么会这样? Python解释器/编译器中的东西是如何使它工作的呢?

你有一些参考吗?

解决方法 由于Python的动态特性,在编译时无法检测未定义的名称.只检查语法;如果语法很好,编译器会生成字节码,Python开始执行代码.

在给定的示例中,您将获得对全局名称false的引用.只有当字节码解释器尝试实际访问此全局名称时,才会出现错误.

为了说明,这是一个例子.你认为以下代码执行正常吗?

globals()["snyfr".decode("rot13")] = 17x = false

实际上它确实如此,因为第一行动态生成一个名为false的变量.

总结

以上是内存溢出为你收集整理的编译Python,为什么忽略了一些错误的东西?全部内容,希望文章能够帮你解决编译Python,为什么忽略了一些错误的东西?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1194611.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存