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

Python object as an optional argument of a class instructor

在创建 class 的新实例(比如 A)时,我希望另一个 class 的实例(比如 B)成为构造函数的可选参数。如果 B 作为参数给出,那么我希望 A 的构造函数指定 B 属于 A。如果没有作为参数给出,我希望我的构造函数创建相同 class 作为 B 所属的位置并指定此新实例属于 A。

更具体地说,我正在处理医院的到达流程。到达是根据随机过程发生的。我希望能够指定一个 arrival 事件是关于一个已经存在的 customer (在这种情况下,我应该把它作为一个参数)还是它将是一个新的 customer,在这种情况下,我的 arrival 构造函数应该创建 customer.

的新实例
class A:
    def __init__(self, b=None):
        if b is None:
            self.b = B()
        else:
            self.b = b

到达是根据随机过程发生的。我希望能够指定一个到达事件是关于一个已经存在的客户(在这种情况下,我应该把它作为一个参数)还是它将成为一个新客户,在这种情况下我的到达构造函数应该创建客户的新实例。

这只是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))