为什么Python在编译这段代码时不会抛出错误?

我是 Python 新手,所以请耐心等待。为什么 Python 在编译以下代码时不抛出错误。

def b_search(left, right):
    while left <= right:
        mid = left + (right-left)//2

        if nums[mid] == target:
            return mid
        if nums[mid] < target:
            left = whatever
        else:
            right = mid-1
    return -1

想知道即使没有定义 'nums' 也没有错误,'whatever' 和 'target' 也没有。

谢谢!

回答

全局变量在运行时查找,当函数尝试访问它们的值时,而不是在定义函数时。如果nums在函数尝试实际使用它时仍然没有变量,那么您将在那时收到 NameError,但不会在函数定义时收到。

这里的过程不是“nums使用我们找到的信息查找和编译字节码”;它是“编译字节码,如果运行,则可能会查找nums”。


以上是为什么Python在编译这段代码时不会抛出错误?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>