如果我有一个像下面这样的简单班级:
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
的实例
如何以上述方式链接两个类?
答案 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
...设置更合理的默认值...