讨论/技术交流/请问一下python的函数怎么调用,看过各种教程但是解答里这种函数不会调用/
请问一下python的函数怎么调用,看过各种教程但是解答里这种函数不会调用

class Solution:
def minJump(self, jump: List[int]) -> int:
如上,形参除了self,jump,List还有什么?
我根据上面的形参的函数这么写的:
nums = int(input())
List = input()
self = 0
jumps = Solution.jump(self,nums,List)
print(jumps)
然后第一行就显示错误:
name 'List' is not defined
请问我该怎么改?

共 7 个回复

Ok我知道了,输入列表输入搞错了,。。。

答案只有个函数,我在自己的VScode上运行还需要自己调用,但是就是调用的时候就不会,具体错误我在上面楼层写了。这考试的时候,ACM模式我就直接抓瞎了

您好!感谢解答。关于这个题的源码是这个样的:
class Solution:
def jump(self, nums: list[int]) -> int:
farthest = 0
end = 0 # 记录每一步跳跃可以到的区间的最后一个元素,用于记录何时jumps+=1
jumps = 0 # 记录跳跃次数
for i in range(len(nums)-1):
farthest = max(farthest, nums[i] + i)
if end == i:
jumps += 1
end = farthest
return jumps
如果我把List改为list或者直接删除list,那么就会在:
farthest = max(farthest, nums[i] + i)
处报错,显示num[i] + i只能是字符串连接字符串,说明nums依然是字符串类型。但是如果我按照力扣网给的List,则会继续显示name 'List' is not defined。我百思不得其解

这里不需要定义输入,jump就是一个数组了,直接用,self也不用管,建议可以看一下答案,就明白了

感谢解答,但是我在改为:
nums = input()
self = 0
jumps = Solution.jump(self,nums)
print(jumps)
时依旧是错的,依旧提示:name 'List' is not defined
文档里确实没提这种情况

可能是因为type hint的问题,你可以删除函数中的类型标注,或者在前面增加类型标注的引用

List 是类型提示不是参数,意思是说 jump 是个 list,仔细看下文档:https://docs.python.org/zh-cn/3/library/typing.html