如何创建一个链接了另一个类对象的python实例?

时间:2018-10-22 11:21:01

标签: python-3.x class oop attributes instance

如果我有一个像下面这样的简单班级:

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 = 5s.time_range.tf = 10

换句话说,time_r中的Usr应该是一个属性,它将自动为该TimeRange实例创建Usr的实例

如何以上述方式链接两个类?

1 个答案:

答案 0 :(得分:1)

您可以将初始化程序设置为默认值(例如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 ...设置更合理的默认值...