Python3: Object不接受参数

2024-04-24 04:49:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在查看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=' ')

Tags: 代码inselftrueforifinitdef
1条回答
网友
1楼 · 发布于 2024-04-24 04:49:39

原因是类中的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=' ')

相关问题 更多 >