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