Problem with mixing doctest with gettext _()
__peter__ at web.de
Fri Feb 27 22:31:24 CET 2004
Pierre Rouleau wrote:
> Peter Otten wrote:
>> Pierre Rouleau wrote:
>>>It worked, BUT only for a simple function, it fails if I add a another
>> Haven't read your post completely, but judging from the error message,
>> it's just a minor glitch in mydisplayhook(). Try the following instead:
>> ... if a is not None:
>> ... sys.stdout.write("%r\n" % (a,))
>> That should be able to cope with tuples as commandline results.
> You're right! It does work. I must admit, that I don't see why though.
> (a,) makes a tuple out of the `a` argument. Does the %r conversion
> require a tuple?
The formatting operator behaves differently depending on whether the
righthand argument is a tuple or something else.
formatstr % tuple
ensures that there is a corresponding format expression - e.g. "%s" or "%d"
- for every item in the tuple, whereas
formatstr % nontuple
expects exactly one format expression. Therefore
"%r\n" % a
raises an exception when a is a tuple with more or less than one item and
wrongly prints the item's representation instead of the tuple's for
Wrapping it like so (a,) fixes the problem because now we have always a
tuple with one item - where this item is sometimes a tuple.
An alternative approach would be to ensure that the righthand side is always
"%s\n" % repr(a)
More information about the Python-list