Python:链接类成员以访问实例变量

Python:链接类成员以访问实例变量,python,class,reference,instance,Python,Class,Reference,Instance,我正在用一个方法(剩余时间)创建一个类(Workers)的几个实例。一些工作人员从事相同的任务,因此剩余时间方法需要知道这些工作人员,以计算正确的时间。 是否有一种pythonic方法来保存对类成员的引用,以便我可以访问实例的所有实例或特定变量 如果Workers也是一个包含所有实例的列表,则代码如下所示: 工人阶级: 定义初始(自我、任务、工作功率): self.task=任务 自工作功率=工作功率 def剩余时间(自身、任务): 工作功率=总和([x.task=self.task时,工人中x

我正在用一个方法(剩余时间)创建一个类(Workers)的几个实例。一些工作人员从事相同的任务,因此剩余时间方法需要知道这些工作人员,以计算正确的时间。 是否有一种pythonic方法来保存对类成员的引用,以便我可以访问实例的所有实例或特定变量

如果Workers也是一个包含所有实例的列表,则代码如下所示:

工人阶级:
定义初始(自我、任务、工作功率):
self.task=任务
自工作功率=工作功率
def剩余时间(自身、任务):
工作功率=总和([x.task=self.task时,工人中x的工作功率])
时间=自我任务时间/工作功率
我发现拥有类似列表的唯一方法是使用默认值空列表,该值在所有实例之间共享:

def\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuu(自我、任务、工作能力、实例=[]):
self.task=任务
自工作功率=工作功率
instances.append(self)
但这似乎并不优雅


谢谢大家!

通常的方式是类变量:

class Workers:
    instances = []

    def __init__(self, task, working_power):
        self.task = task
        self.working_power = working_power
        Workers.instances.append(self)

    def remaining_time(self, task):
        working_power = sum([x.working_power for x in Workers.instances if x.task = self.task])
        time = self.task.time/working_power