Python 3. Функция на выводе выдает нужную информацию и в конце добавляет "None"

Пишу функцию по созданию персонажа в простенькой текстовой игре, она выглядит так:

def CreateMainPlayer(mainplayer):
    print('Вы будете играть за: [человек/монстр]')
    vibor = input()
    if vibor == ('человек'):
        print('Введите свое имя: ')
        n = input()
        print('Введите свой возраст: ')
        try:
            a = int(input())
        except ValueError:
            print('ОШИБКА! Возраст - целое число!')
            try:
                a = int(input())
            except UnboundLocalError:
                print('ОШИБКА! Возраст - целое число!')
        mainplayer = Humon(n, a, 70, 100)
    else:
        print('Введите свое имя: ')
        n = input()
        print('Введите свой возраст: ')
        try:
            a = int(input())
        except ValueError:
            print('ОШИБКА! Возраст - целое число!')
            try:
                a = int(input())
            except UnboundLocalError:
                print('ОШИБКА! Возраст - целое число!')
        mainplayer = Monster(n, a, 100, 50)
    return mainplayer

После этого делаю:

print(mainplayer.tell())

А на выходе получаю следующее:

Имя: "ИМЯ123", Возраст: "25", Здоровье: "70", Энергия: "100"
None

Откуда появляется None? Нужный мне объект все же создается, я проверил это выполнив print(mainplayer) Подскажите пожалуйста, что сделал неправильно или как избавиться от вывода None? Заранее прошу прощения, совсем еще новичок ;)

UPD: Совсем забыл, спасибо первому комментатору! Созданы следующие классы:

class Creation():
    # Представялет любое существо
    def __init__(self, name, age, hp, nrg):
        self.name = name
        self.age = age
        self.hp = hp
        self.nrg = nrg
        #print('Создано существо: "{0}"'.format(self.name))
        # Выводит информацию
    def tell(self):
        print('Имя: "{0}", Возраст: "{1}", Здоровье: "{2}", Энергия: "{3}"'.format(self.name, self.age, self.hp, self.nrg), end ="\n")

class Humon():
    # Представляет человека
    def __init__(self, name, age, hp, nrg):
        Creation.__init__(self, name, age, hp, nrg)
        #print('Создан человек: "{0}"'.format(self.name))
    def tell(self):
        Creation.tell(self)

class Monster():
    # Представляет монстра
    def __init__(self, name, age, hp, nrg):
        Creation.__init__(self, name, age, hp, nrg)
        #print('Создан монстр: "{0}"'.format(self.name))
    def tell(self):
        Creation.tell(self)

Ответы (1 шт):

Автор решения: Zhihar

В общем как и ожидалось :)

вы делаете

print(mainplayer.tell())

причем в методе tell() уже есть print, он то и выводит информацию о персонаже

но дальше вы еще выводите результат вызова этого метода, но метод tell() не возвращает никаких значений (а в питоне это значит, что возвращается None), вот вам print и выводит None

попробуйте сделать

print(print("Привет"))

и получите тот же результат:

Привет
None
→ Ссылка