def set_members(self, *args):
if not args:
# Reset members if nothing was given
self._members = []
return
new_members = []
for member in args:
member = list(member)
try:
member[1] = decimal.Decimal(str(member[1]))
except decimal.InvalidOperation:
raise ValueError("Member '{member}' is invalid".format(
member=member))
new_members.append(tuple(member))
new_members.sort(key=lambda x: x[1], reverse=True)
if self._members == new_members:
return
self._members = new_members
self._nr_members = len(new_members)
min_weight = min(i[1] for i in self._members)
self._ratios = []
for _, weight in self._members:
self._ratios.append(int(weight/min_weight * 100))
self.reset()
评论列表
文章目录