此程序中如何发生类型错误?

问题描述 投票:-1回答:1
import sys

def c(a,b):
    return a/b
def b(a,b):
    return c(a,b)
def a(a,b):
    try:
        d=b(a,b)
        print(f"the answer is {d}")
    except:
        print("unexpected error " , sys.exc_info()[0])

a(2,2)
python
1个回答
2
投票

如果您没有捕获到异常并丢弃了有用的信息,那您早就知道了。

def b(a, b):是问题,并带有局部变量bb不能同时是一个函数和一个整数。在这种情况下,b是一个整数(局部参数变量遮盖了全局函数),因此您尝试执行d = 2(2, 2),这没有任何意义。

重命名函数或参数。

© www.soinside.com 2019 - 2024. All rights reserved.