On 12Apr2012 19:43, Chris Angelico <[email protected]> wrote:
| On Thu, Apr 12, 2012 at 7:35 PM, Cameron Simpson <[email protected]> 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 <[email protected]> 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