Если у меня есть простой класс, как показано ниже:
class Usr:
def __init__(self, time_r):
self.time_range = time_r
где я хочу, чтобы атрибут time_r
был объектом класса TimeRange
, как показано ниже:
class TimeRange:
def __init__(self, min_time, max_time):
self.ti = min_time
self.tf = max_time
Я хотел бы создать пустой экземпляр Usr s = Usr
, а затем назначить атрибуты позже. Пример: s.time_range.ti = 5
, s.time_range.tf = 10
.
Другими словами, time_r
в Usr
должен быть атрибутом, который автоматически создаст экземпляр TimeRange
для этого экземпляра Usr
.
Как связать два класса описанным выше способом?
вы можете установить для инициализаторов значения по умолчанию (например, None
):
class TimeRange:
def __init__(self, min_time=None, max_time=None):
self.ti = min_time
self.tf = max_time
class Usr:
def __init__(self, time_r=None):
self.time_range = time_r if time_r is not None else TimeRange()
тогда:
s = Usr()
s.time_range.ti = 5
s.time_range.tf = 10
вы можете установить более разумные значения по умолчанию для TimeRange
...