gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:28:41 33 4
gpt4 key购买 nike

我写了一个 Python 例程,其中有一个错误:false 而不是 False。但是,它在编译时没有被发现。该程序必须运行到这一行才能通知错误行为。

为什么会这样? Python 解释器/编译器中的什么东西让它如此工作?

有引用资料吗?

最佳答案

由于 Python 的动态特性,不可能在编译时检测到未定义的名称。只检查语法;如果语法没问题,编译器生成字节码,Python 开始执行代码。

在给定的示例中,您将获得对全局名称 false 的引用。只有当字节码解释器试图实际访问这个全局名称时,你才会得到一个错误。

为了说明,这里有一个例子。你认为下面的代码执行得好吗?

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

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

关于python - 编译Python,为什么会忽略一些错误的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12447703/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com