Мне нужно как-то добавить сгенерированный класс B из gen_b в A (). Children
Просто сохраните новый элемент, прежде чем возвращать его, и вы можете делать с ним все, что захотите- включая добавление к детям
def gen_b(self):
b = B(self.a_val)
self.children.append(b)
return b
Что касается del
... Пожалуйста, прочитайте, что на самом деле делает .Самая важная часть:
Удаление имени удаляет привязку этого имени
Так что если вы, например,
>>> a_class = A()
>>> a2 = a_class
>>> del a_class
a2 все ещебудет работать и предназначаться для того же элемента (потому что он содержит ту же ссылку, что и a_class
).del
просто удаляет имя, а не сам объект.
Вам потребуется другой подход для удаления этих элементов.