我正在使用方法(remaining_time)創建一個類(Workers)的幾個實例。有些工人在做同一個任務,所以剩余時間方法需要知道這些工人來計算正確的時間。是否有一種 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)不過,這似乎并不優雅。
1 回答

慕婉清6462132
TA貢獻1804條經驗 獲得超2個贊
通常的方式是一個類變量:
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
添加回答
舉報
0/150
提交
取消