[Zope3-dev] Re: [Zope3-checkins] SVN:
Zope3/branches/tlotze/src/zope/interface/interface.py
Simplifying some idioms, coding style.
Benji York
benji at zope.com
Mon Aug 22 11:18:44 EDT 2005
Thomas Lotze wrote:
> Log message for revision 37985:
> Simplifying some idioms, coding style.
>
> Changed:
> U Zope3/branches/tlotze/src/zope/interface/interface.py
>
> -=-
> Modified: Zope3/branches/tlotze/src/zope/interface/interface.py
> ===================================================================
> --- Zope3/branches/tlotze/src/zope/interface/interface.py 2005-08-18 07:12:23 UTC (rev 37984)
> +++ Zope3/branches/tlotze/src/zope/interface/interface.py 2005-08-18 07:57:37 UTC (rev 37985)
> @@ -33,12 +33,8 @@
>
> def invariant(call):
> f_locals = sys._getframe(1).f_locals
> - tags = f_locals.get(TAGGED_DATA)
> - if tags is None:
> - tags = f_locals[TAGGED_DATA] = {}
> - invariants = tags.get('invariants')
> - if invariants is None:
> - invariants = tags['invariants'] = []
> + tags = f_locals.setdefault(TAGGED_DATA, {})
> + invariants = tags.setdefault('invariants', [])
> invariants.append(call)
> return _decorator_non_return
I didn't review your entire check in (and I realize that this is on a
branch), but the non-use of setdefault there was probably intentional to
keep from constructing empty dicts and lists when they may not be used.
> def getSignatureString(self):
> - sig = "("
> + sig = []
> for v in self.positional:
> - sig = sig + v
> + sig.append(v)
> if v in self.optional.keys():
> - sig = sig + "=%s" % `self.optional[v]`
> - sig = sig + ", "
> + sig[-1] += "=%s" % `self.optional[v]`
> if self.varargs:
> - sig = sig + ("*%s, " % self.varargs)
> + sig.append("*%s" % self.varargs)
> if self.kwargs:
> - sig = sig + ("**%s, " % self.kwargs)
> + sig.append("**%s" % self.kwargs)
>
> - # slice off the last comma and space
> - if self.positional or self.varargs or self.kwargs:
> - sig = sig[:-2]
> + return "(%s)" % ", ".join(sig)
>
> - sig = sig + ")"
> - return sig
If you're looking for a simplification here, I'd use "+" rather than "%"
above, for example:
sig.append("*" + self.varargs)
--
Benji York
Senior Software Engineer
Zope Corporation
More information about the Zope3-dev
mailing list