# -*- coding: utf-8 -*- from functools import reduce class ListedSubWindow(object): def __init__(self): super(ListedSubWindow, self).__init__() self.sub_win_cnt = 0 self.sub_win_list = [] def sub_win_count(self): return self.sub_win_cnt def sub_win_list(self): return self.sub_win_list.copy() def sub_win_add(self, name, win): self.sub_win_list.append((name, win)) self.sub_win_cnt += 1 print(f"+ {name} ({self.sub_win_cnt})") def sub_win_del(self, name): self.sub_win_list = list( filter( lambda x: x[0] != name, self.sub_win_list ) ) self.sub_win_cnt = len(self.sub_win_list) print(f"- {name} ({self.sub_win_cnt})") def sub_win_exists(self, name): return reduce( lambda acc, n: (acc or (n[0] == name)), self.sub_win_list, False )