如何更改type contract

def sort_and_pop(x: list, i: int) -> list:
x.sort()
return x.pop(i)

你的代码

lst = [23, 17, 3, 13, 11, 5, 7, 2, 19, 1]
lst = sort_and_pop(lst, 5)
lst = sort_and_pop(lst, 2)

如果您运行此代码,您会发现它会产生错误。
根据type contract,你的代码应该可以工作。但事实并非如此,因为函数类型协定有错误的类型注释。

更正函数类型协定(function type contract),以便从类型协定中清楚看到你的代码将不起作用。
(你的代码将并且应该仍然是对该功能的错误使用!)

如何更改函数方程的type contract

根据函数定义返回的是pop出的一个元素,类型注释里却返回的是列表,可改成(这里默认传入整数列表)

def sort_and_pop(x: list, i: int) -> int:
    x.sort()
    return x.pop(i)
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632