简单但方法调用的位置参数太多

新手上路,请多包涵
  1. 谁能解释为什么 TypeError

fib() 采用 1 个位置参数,但给出了 2 个`

当我只给它一个参数时 => self.fib(self.n - 1)

  1. 此外,在保留类的实例化的同时,您能否建议解决此问题的解决方案?

  2. 我觉得“自我”用得太多了,尤其是我添加的方法越多。可以改进吗?

只是想了解一些基础知识!感谢所有反馈。

 class math_func:
    def __init__(self, n: "int" = 6, output: "list" = []):
        self.n = n
        self.output = output

    def fib(self):
        print("Current output is:", self.output)
        if self.n == 0:
            return self.output
        else:
            if len(self.output) < 2:
                self.output.append(1)
                self.fib(self.n - 1)
            else:
                last = self.output[-1]
                second_last = self.output[-2]
                self.output.append(last + second_last)
                self.fib(self.n - 1)
            return self.output

first_func = math_func(n=9)
print(first_func.fib())

原文由 Salchem 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 518
1 个回答

方法的第一个参数是 self ,它指的是调用该方法的 _对象_。如果,看起来,您希望传递一个参数( n ,它看起来像),您需要将其包含在方法的签名中。

原文由 Scott Hunter 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题