Python对象作为类讲师的可选参数

时间:2019-06-08 12:11:35

标签: python object optional-arguments

在创建类的新实例(例如A)时,我希望另一个类的实例(例如B)成为构造函数的可选参数。如果给定B作为参数,那么我希望A的构造函数指定B属于A。如果不给定B,我希望构造函数创建一个与B相同类的NEW实例(例如C)。属于并指定此新实例属于A。

更具体地说,我正在为医院的进货流程做准备。到达是根据随机过程进行的。我希望可以指定一个arrival事件是关于一个已经存在的customer(在这种情况下,我应该将它作为参数)或它将是一个新的{{ 1}},在这种情况下,我的customer构造函数应创建arrival的新实例

2 个答案:

答案 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))