[TIP] Teaching pylint about keyword placeholders in string formatting
Marius Gedminas
marius at gedmin.as
Wed Jul 15 04:44:31 PDT 2009
On Wed, Jul 15, 2009 at 08:08:13PM +1000, Ben Finney wrote:
> Howdy all,
>
> A common idiom I use is::
>
> def frobnicate(warble):
> foo = complex_computation()
> bar = long.access.path.leading.to.useful.value
> baz = (lengthy + expression * with_several_parts)
> spangulate("%(warble)s: %(foo)s%(bar)s [%(baz)d]" % vars())
>
> This allows the format of the string to be clear, and allows the
> separate parts of it to have meaningful names.
>
> However, this is causing pylint to complain::
For some reason I mislike the use of vars()/locals()/globals() for use
cases other than debugging, so I tend to write
spangulate("%(warble)s: %(foo)s%(bar)s [%(baz)d]"
% dict(warble=warble, foo=foo, bar=bar, baz=baz))
and therefore never have the problem with pylint. (Though I prefer
pyflakes. Fewer erroneous warnings, or at least I got that impression.)
Strangely enough, playing with sys._getframe(1).f_globals is okay in my
book, if I really need it.
Marius Gedminas
--
If the code and the comments disagree, then both are probably wrong.
-- Norm Schryer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.idyll.org/pipermail/testing-in-python/attachments/20090715/17b1a904/attachment.pgp
More information about the testing-in-python
mailing list