Почему метод класса возвращает 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)
→ Ссылка