Прежде всего, взгляните на эту страницу, объясняющую концепцию наследования классов и super () в Python . Это может быть очень полезно и уже может быть применено в вашем фрагменте кода
Относительно вашего вопроса:
Проблема в том, что я не знаю, как добавить объекты из класса ватрибут класса, который сам по себе является классом.
Я не уверен, что полностью понимаю вашу проблему, но я могу прояснить некоторые моменты вокруг:
- Как только вы определитекласс, это план объекта Python. Когда вы вызываете этот проект с помощью метода
__init__
(например, a = Square(0,1,3)
), вы теперь имеете дело с экземпляром этого класса, который хранится в переменной a
- Каждый класс может иметь столько методови атрибуты, как вы хотите, и также унаследует их от суперкласса. Они хранятся в назначенной переменной и могут быть вызваны из любого места. Ссылка, которую я дал вам, содержит несколько хороших примеров, но допустим, что:
class Square():
def __init__(self, center_x, center_y, width):
self.center = (center_x, center_y)
self.width = width
self.length = width
a = Square(0,1,3)
a.center #will return (0,1)
a.width #will return 3
в вашем фрагменте кода, если draw
является экземпляром Drawpaper
, и этот класс имеет атрибутDrawpaper.__list_of_geometricalobjects
, вы можете получить доступ к этому атрибуту экземпляра, выполнив draw.__list_of_geometricalobjects
. Однако рекомендуется проверить, так ли это, с помощью метода isinstance()
или, лучше, hasattr()
, чтобы напрямую проверить атрибут.
Еще одна вещь, которую я заметил в вашем фрагменте кода, заключается в том, чтоdrawpaper
не определено в рамках этого класса. Другими словами, должно ли это быть включено в вызов __init__
в качестве аргумента? это опечатка?