wie würdet ihr vorgehen?
So...
Code: Alles auswählen
class Timeframe(object):
def __init__(self, years, months, days):
self.years = years
self.months = months
self.days = days
class Picker(object):
def __init__(self):
self.picked = []
def pick(self, item):
do_it = self.picked.remove if \
item in self.picked else self.picked.append
do_it(item)
def __iter__(self):
for item in self.picked:
yield item
def __len__(self):
return len(self.picked)
Code: Alles auswählen
>>> y = Picker()
>>> m = Picker()
>>> d = Picker()
>>> t = Timeframe(y, m, d)
>>> y.pick(2011)
>>> t.years
[2011]
Code: Alles auswählen
class Timeframe(object):
def __init__(self):
self.years = None
self.months = None
self.days = None
def update(self, years=None, months=None, days=None):
if years:
self.years = years
if months:
self.months = months
if days:
self.days = days
class Picker(object):
def __init__(self):
self.picked = []
def pick(self, item):
do_it = self.picked.remove if \
item in self.picked else self.picked.append
do_it(item)
self.notify(self)
def set_notifier(self, notifier):
self.notify = notifier
def __iter__(self):
for item in self.picked:
yield item
def __len__(self):
return len(self.picked)
Code: Alles auswählen
>>> y = Picker()
>>> m = Picker()
>>> d = Picker()
>>> t = Timeframe()
>>> y.set_notifier(t.update)
>>> m.set_notifier(t.update)
>>> d.set_notifier(t.update)
>>> y.pick(2011)
>>> t.years
[2011]
mutetella