> I don't know if it should be *that* mechanical; there are a lot of > places where I've seen " 'something %s' % repr(foo)" when I think > it's much more clearly written as " 'something %r' % foo". I don't > know which is the officially preferred style, but if it's the latter > (and I hope it is ;)) then it may not be good to mechanically change > backticks to a repr call. If you're going to do that, I would beware of one thing. If x is a tuple, "foo %r" % x will not do the right thing: it will expect x to be a 1-tuple and produce the repr of x[0]: >>> a = (42,) >>> print "foo %s" % repr(a) foo (42,) >>> print "foo %r" % a foo 42 >>> a = (4, 2) >>> print "foo %r" % a Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: not all arguments converted during string formatting >>> This is only a problem when there's only one % format in the string; if there are two or more, the argument is already a tuple and the substitution of %s/repr(x) to %r/x works fine. This also suggests a solution: if there's only one argument, create an explicit tuple: >>> print "foo %r" % (a,) foo (4, 2) >>> --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4