【发布时间】:2019-07-17 06:47:45
【问题描述】:
我想在同一个类的不同实例之间实现一些逻辑,但我不知道如何正确地做到这一点。审查和建议都是必需的。
最好从一个例子开始。假设我有一个班级foo。此类中有三个属性 - id、group 和 nitem。
要实现的逻辑是foo的实例如果在同一组下应该有相同数量的项目(即nitem)。
有些人可能已经注意到我已经在实例之间实现了一段逻辑,它通过foo._id 计算实例的数量。但是你也可以很容易地理解这种方法是多么的幼稚。如果您创建三个foo 实例并删除中间实例。最后一个实例仍然有id=3。
class foo(object):
_id = 0
def __init__(self, group, nitem):
foo._id += 1
self.id = foo._id
self.group = group
self.nitem = nitem
if __name__ == "__main__":
a = foo(1, 100)
b = foo(2, 10) #no error. Different groups can have different nitem.
c = foo(1, 10) # I want this to raise error.Same groups can't have different nitem.
【问题讨论】:
标签: python python-3.x class oop