Можно ли в конструктор класса передать объект этого же класса?

Всем привет

Можно ли как-то более лаконично реализовать такую конструкцию?
Задача в том, чтобы инициализировать объект класса либо набором параметров, либо параметрами из другого объекта этого же класса.

from dataclasses import dataclass, field

@dataclass
class Container:
    user_id: int
    body: str
    container: 'Container' = None

    def __post_init__(self):
        if self.container is not None:
            self.user_id = self.container.user_id
            self.body = self.container.body

first = Container(1,"abc")
second = Container(2,"def", first)
print(first)    # Container(user_id=1, body='abc', container=None)
print(second)    #Container(user_id=1, body='abc', container=Container(user_id=1, body='abc', container=None))
  • Вопрос задан
  • 213 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы