Итак, я делал RPG-игру и столкнулся с некоторыми проблемами с наследованием и распаковкой. Я попытался сделать простую версию проблемы, которую я имею:
class Animal():
def __init__(self,name):
self.name = name
def say_noise(self):
noise = "I am an animal"
by_who = "Animal"
return noise,by_who
class Dog(Animal):
def __init__(self,name):
self.name = name
def say_noise(self):
Animal.say_noise(self)
animal = Animal("man")
doggy = Dog("name")
Что я хочу сделать, это вернуть те же две вещи в классе Animal и классе Dog. Теперь, когда я выполняю say_noise () с моим Animal, он работает нормально, так как возвращает:
('I am an animal', 'Animal')
Однако, когда я делаю это с классом Dog, он ничего не возвращает, и я также попытался распаковать их (это то, что я собираюсь сделать в моем реальном коде), но когда я делаю это.
a,b =doggy.say_noise()
, он просто возвращает это:
TypeError: не может распаковать не повторяемый NoneType object
Как я могу вернуть то же самое с помощью того же метода класса, только унаследовав его от родительского класса?