Привет, я изучаю Python 3, и, чтобы закрепить полученные знания по теме ООП, я решил сделать небольшую программу-игру. При создании у меня возникла проблема: я не могу из метода init дочернего класса HumanWarrior получить доступ к атрибуту (в данном случае списку objects) родительского класса GameObject. При начале работы выдаётся ошибка: “Name error: name ‘objects’ is not defined”. Надеюсь что кто-то подскажет в чём проблема кода.
class GameObject:
class_name=""
desc=""
objects=[]
def get_desc(self):
return self.class_name + "\n" + self.desc
class HumanWarrior(GameObject):
def __init__(self, name):
self.class_name = "human-warrior"
self.health = 10
self.desc = "Ordinary human. Wears strong armor, shield and a sharp sword, which use to clean up world from unholy creatures"
self.name=name
self.answer0="My name is {}, I'm a protector of the Empire".format(self.name)
self.answer1="The Kingdom of Zarvin is the capital of the Empire"
self.answer2="I will clean up world from all vicious monsters and servants of evil"
self.answer3="Union of Elves is ignorant and I don't respect them, but this is necessary alliance"
self.answer4="Don't you have any other bussines?"
objects.append(self.class_name)
humanwarrior=HumanWarrior("Vernon")
Тут не поможет super(), так как objects это не часть метода класса, а его атрибут, то-есть его и вызвать подобным образом не получится. В любом случае спасибо за информацию!