在创建类的新实例(例如A)时,我希望另一个类的实例(例如B)成为构造函数的可选参数。如果给定B作为参数,那么我希望A的构造函数指定B属于A。如果不给定B,我希望构造函数创建一个与B相同类的NEW实例(例如C)。属于并指定此新实例属于A。
更具体地说,我正在为医院的进货流程做准备。到达是根据随机过程进行的。我希望可以指定一个arrival
事件是关于一个已经存在的customer
(在这种情况下,我应该将它作为参数)或它将是一个新的{{ 1}},在这种情况下,我的customer
构造函数应创建arrival
的新实例
答案 0 :(得分:1)
class A:
def __init__(self, b=None):
if b is None:
self.b = B()
else:
self.b = b
答案 1 :(得分:0)
到达是根据随机过程发生的。我希望可以指定到达事件是针对已经存在的客户(在这种情况下,我应该将其作为参数)还是即将成为新客户,在这种情况下,我的到达构造函数应创建一个新的客户实例。
这只是dict和setdefault的用法:
customers = {}
for co in all_customers:
known_customer = customers.setdefault(hash(co), customer(co))
或者如果您希望将其用作构造函数:
class arrival:
known_cos = {}# quasi static
def __init__(self, co)
self.customer = known_cos.setdefault(hash(co) , customer(co))