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 шт):
В общем как и ожидалось :)
вы делаете
print(mainplayer.tell())
причем в методе tell() уже есть print, он то и выводит информацию о персонаже
но дальше вы еще выводите результат вызова этого метода, но метод tell() не возвращает никаких значений (а в питоне это значит, что возвращается None), вот вам print и выводит None
попробуйте сделать
print(print("Привет"))
и получите тот же результат:
Привет
None