Python3: 对象不接受参数

Python3: Object won't take parameters

我正在审阅有关 Lynda 的视频,有时 运行 我自己输入提供的代码。

老师的代码可以用,我的不行。

它returns "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=' ')

原因是class中的init函数。此方法的工作方式如 here 所示,让对象在初始化时被分配参数。我相信你明白这一点,但你犯的一个简单错误是它需要两边的 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=' ')