Как вернуть значение из класса?
Суть проблемы:
Допустим есть класс Ball и если он создается без атрибута name, то нужно вернуть из метода ball_type значение "regular", а если есть любое другое значение, то вывести нужно "super".
Мой код:
class Ball (object):
name = ""
def ball_type (self):
if self.name == "":
return regular
else:
return super
print (Ball ().ball_type, "regular")
print (Ball ("super").ball_type, "super")
Вывод с консоли:
TypeError: __init__() missing 1 required positional argument: 'name'
Ответы (1 шт):
Автор решения: Danis
→ Ссылка
надо добавить метод __init__ который принимает не обязательный параметр name.Но в этом случае вам надо вызвать ball_type
class Ball (object):
def __init__(self, name = ""):
self.name = name
def ball_type (self):
if self.name == "":
return "regular"
else:
return "super"
print (Ball().ball_type(), "regular")
print (Ball("super").ball_type(), "super")
либо создавать ball_type в __init__. В этом случае вызывать не надо
class Ball (object):
def __init__(self, name = ""):
self.name = name
self.ball_type = "super" if name else "regular"
print (Ball().ball_type, "regular")
print (Ball("super").ball_type, "super")