我正在查看有关Lynda的视频,有时我不只是运行提供的代码,而是自己输入了视频。
讲师的代码有效,但我的代码无效。
它返回"object does not take parameters"
。
我的在顶部,他的在底部。
谁能解释?
class Fibonnacci():
def _init_(self, a, b):
self.a = a
self.b = b
def series(self):
while(True):
yield(self.b)
self.a, self.b = self.b, self.a + self.b
f = Fibonnacci(0, 1)
for r in f.series():
if r > 100: break
print(r, end=' ')
class Fibonacci():
def __init__(self, a, b):
self.a = a
self.b = b
def series(self):
while(True):
yield(self.b)
self.a, self.b = self.b, self.a + self.b
f = Fibonacci(0, 1)
for r in f.series():
if r > 100: break
print(r, end=' ')
原因是init
该类中的函数。此方法效果而定的方式在这里让一个对象被分配参数时初始化。我确定您了解这一点,但是您所犯的简单错误是,它需要2
在任何一方都使用下划线才能生效。像这样:__init__
。那是您的两个代码之间的区别。
class Fibonnacci():
def _init_(self, a, b): #<-- the error is here, should be __init__()
self.a = a
self.b = b
def series(self):
while(True):
yield(self.b)
self.a, self.b = self.b, self.a + self.b
f = Fibonnacci(0, 1)
for r in f.series():
if r > 100: break
print(r, end=' ')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句