Почему метод класса возвращает None?
При вызове метода move он выводит в консоль нужный результат и None. Откуда интерпретатор берет None?
class Auto:
x = 0
y = 0
name = ''
weight = 0
max_speed = 0
def __init__(self,x,y,weight,max_speed,name):
self.x = x
self.y = y
self.weight = weight
self.max_speed = max_speed
self.name = name
def __str__(self):
return 'Автомобиль ' + str(self.name) + ' ' + 'вес авто = ' + str(self.weight) + 'кг ' + 'макс. скорость = ' + str(self.max_speed) + 'км/ч'
def move(self,x,y):
print('Движение автомобиля в точку ', x, y)
renault = Auto(1, 2, 1500, 220, 'renault')
print(renault.move(15, 20))
print(renault)
Ответы (3 шт):
Автор решения: CrazyElf
→ Ссылка
def move(self,x,y):
print('Движение автомобиля в точку ',x,y)
print(renault.move(15,20))
Метод move ничего не возвращает через return, поэтому Python считает, что метод возвращает None. Соответственно, print(renault.move(15,20)) этот None и печатает.
Автор решения: Jack_oS
→ Ссылка
У вас в функции нет return:
def move(self,x,y):
print('Движение автомобиля в точку ',x,y)
но вернуть-то что-то нужно?.. вот оно и возвращает None
Кстати, return print('Движение автомобиля в точку ',x,y) не сработает: функция print возвращает None ;)
Автор решения: Victor VosMottor
→ Ссылка
Если в функции не прописан return — она возвращает None. Функция в питоне всегда возвращает что-то. Вы вероятно хотите:
def move(self, x, y):
return ('Движение автомобиля в точку ', x, y)