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))
在创建 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))