On 12Apr2012 19:43, Chris Angelico <ros...@gmail.com> wrote: | On Thu, Apr 12, 2012 at 7:35 PM, Cameron Simpson <c...@zip.com.au> wrote: | > I've found myself using a Python gotcha as a feature. | > I've got a budding mail filter program which keeps rule state in a | > little class instance. Slightly paraphrased: | > | > class RuleState(object): | > def __init__(self, M, maildb_path, maildirs={}): | > [...] | > self.maildirs = maildirs | > | > Would experienced users please mock me? | | Well, no mocking; the same technique on a non-method function is a | pretty normal way of maintaining state.
I hadn't realised it was a common approach. | But wouldn't it be simpler to use a class variable? Yes. Yes it would. | class RuleState(object): | maildirs = {} | def __init__(self, M, maildb_path): | Then just use self.maildirs everywhere, never assign to it. Thanks. It makes the shared state far more obvious, too. Cheers, -- Cameron Simpson <c...@zip.com.au> DoD#743 http://www.cskk.ezoshosting.com/cs/ Life IS pain, highness... anyone who tries to tell you different is trying to sell you something. - Wesley, The_Princess_Bride -- http://mail.python.org/mailman/listinfo/python-list