- 谁能解释为什么
TypeError
是
fib() 采用 1 个位置参数,但给出了 2 个`
当我只给它一个参数时 => self.fib(self.n - 1)
!
此外,在保留类的实例化的同时,您能否建议解决此问题的解决方案?
我觉得“自我”用得太多了,尤其是我添加的方法越多。可以改进吗?
只是想了解一些基础知识!感谢所有反馈。
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 许可协议
方法的第一个参数是
self
,它指的是调用该方法的 _对象_。如果,看起来,您希望传递一个参数(n
,它看起来像),您需要将其包含在方法的签名中。