狗正八 2019-10-16 12:37 采纳率: 100%
浏览 2770
已采纳

Solution() takes no arguments何解?

站内站外找到的解答都是关于__init__()写错了的问题。可是我没用__init__()啊。求大神指教我错在哪里了???
这是leetcode上的45题,看的别人的答案,在leetcode上能运行出来,自己在jupyter book上就运行不出来了(加了最后2句)。

from typing import List

class Solution:
    def jump(self, nums: List[int]) -> int:
        counter = 0  # 移动次数
        curr_end = 0  # 当前跳跃的终点
        curr_farthest = 0  # 最远位置的下标
        for i in range(len(nums) - 1):
            curr_farthest = max(curr_farthest, i + nums[i])
            if i == curr_end:
                counter += 1
                curr_end = curr_farthest
        return counter

a = Solution([2,3,1,1,4])
print(a.jump())

报错信息如下
TypeError Traceback (most recent call last)
in
13 return counter
14
---> 15 a = Solution([2,3,1,1,4])
16 print(a.jump())

TypeError: Solution() takes no arguments

  • 写回答

2条回答 默认 最新

  • JonathanYan 2019-10-16 13:24
    关注

    直接类名加括号调用的就是__init__函数,别人一看你这个错就知道是跟__init__有关才会那么说。
    你都写了是jump函数传入这个数组,为什么还要直接用Solution调用呢。
    这样写

    a = Solution()
    print(a.jump([2,3,1,1,4]))
    

    出问题的时候自己检查,语言、编译环境和网站不会犯这种低级错误的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    m0_56591004 2021-04-29 13:21

    哥,我想问下class solution后面加括号和不加括号有什么区别啊

    回复
    Atmar0 回复 m0_56591004 2022-11-30 00:43

    class solution:
    这是定义一个类的语法。如果这个类不继承别的类(或者继承的是object类),就不需要加括号;
    如果这个类继承了别的父类,就需要加括号,并且在括号中写入父类名称。

    1
    回复
    m0_56591004 回复 Atmar0 2023-03-30 20:50

    如果不继承其他类,加括号跟不加括号都是一样的吗

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部