如何在Python中调用同一个类的不同实例?

2022-04-01 00:00:00 python instances

问题描述

我是新手。我正在用SIMPY编写一个模拟来模拟一条生产线,它看起来是这样的:机器1->缓冲区1->机器2->缓冲区2->以此类推。

我的问题: 我有一个类,Machine,其中有几个实例。假设当前实例是Machine 2。此实例的方法会影响Machine 1和Machine 3的状态。例如:如果缓冲区2为空,则Machine 3空闲。但当机器2将部件放入缓冲区2时,机器3应被激活。

那么,从同一类的任何给定实例中引用该类的不同实例的方法是什么? 还有一个稍有不同的问题:从另一个类的当前实例调用对象(在本例中为缓冲区1和2)的方式是什么?

编辑:已编辑以增加系统的清晰度。


解决方案

一个类的实例知道该类的其他实例的情况并不常见。

我建议您在类本身中保留某种类型的实例集合,并使用类查找实例:

class Machine(object):
    lst = []
    def __init__(self, name):
        self.name = name
        self.id = len(Machine.lst)
        Machine.lst.append(self)

m0 = Machine("zero")
m1 = Machine("one")

print(Machine.lst[1].name)  # prints "one"

相关文章