我当时在玩python中的面向对象编程,遇到了我以前没有遇到过的错误..:
class Main:
def __init__(self, a , b):
self.a = a
self.b = b
def even(self):
start = self.a
slut = self.b
while start <= slut:
if start % 2 == 0:
yield start
start += 1
def odd(self):
start = self.a
slut = self.b
while start <= slut:
if start % 2 != 0:
yield start
start += 1
def display():
evens = list(num.even())
odds = list(num.odd())
print(f"{evens}'\n'{odds}")
num = Main(20, 50)
Main.display()
看一下最后一个类方法,其中应该有一个“自我”作为要工作的程序的参数。为什么?我以为每个类方法都应该包含一个“自我”作为参数?该程序将无法使用
self
如果打算用作实例方法,则应该有一个参数,如果尝试以此方式使用它,则会出现错误num.display()
。
但是,您是通过class调用它的,Main.display
只是返回了函数本身,而不是的实例method
,因此它按原样工作。
假设您在正文中使用的特定实例Main
(即num
),则应将其替换为self
:
def display(self):
evens = list(self.even())
odds = list(self.odd())
print(f"{evens}'\n'{odds}")
并用
num.display()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句