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=' ')
我正在审阅有关 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=' ')