Должен быть параметр self
, если он предназначен для использования в качестве метода экземпляра, и вы получите сообщение об ошибке, если попытаетесь использовать его таким образом, т. Е. num.display()
.
Однаковы вызываете его через класс , а Main.display
просто возвращает саму функцию, а не экземпляр method
, поэтому она работает как есть.
Учитывая, что вы используете определенный экземпляр Main
(а именно, num
) в теле, вы должны заменить его на self
:
def display(self):
evens = list(self.even())
odds = list(self.odd())
print(f"{evens}'\n'{odds}")
и вызвать его на
num.display()