-
谁能解释一下为什么TypeError
is
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())
方法的第一个参数是self
,它指的是object该方法正在被调用。如果看起来,您希望传递一个参数(n
,看起来像),您需要将其包含在方法的签名中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)