Как создать экземпляр Python, с которым связан другой объект класса? - PullRequest
0 голосов
/ 22 октября 2018

Если у меня есть простой класс, как показано ниже:

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 экземпляра

Как связать два класса описанным выше способом?

1 Ответ

0 голосов
/ 22 октября 2018

вы можете установить инициализаторы на значения по умолчанию (например, 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...

...