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

问题描述 投票:0回答:1

我正在使用方法(remaining_time)创建一个类(Workers)的多个实例。一些工作人员从事同一任务,因此,remaining_time方法需要知道这些工作人员以计算正​​确的时间。是否有Python方式保留对类成员的引用,以便我可以访问所有实例或实例的特定变量?

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

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

我发现拥有类似列表的唯一方法是使用默认值空列表,该列表在所有实例之间共享:

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

虽然这似乎并不优雅。

谢谢!

python class reference instance access
1个回答
-1
投票

通常是类变量:

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
© www.soinside.com 2019 - 2024. All rights reserved.