String handling and the percent operator
Simon Forman
rogue_pedro at yahoo.com
Thu Jul 13 21:34:32 EDT 2006
Tom Plunket wrote:
> Simon Forman wrote:
>
> > strings have a count() method.
>
> thanks!
>
> For enrichment purposes, is there a way to do this sort of thing with
> a generator? E.g. something like:
>
> def SentenceGenerator():
> words = ['I', 'have', 'been', 'to', 'the', 'fair']
> for w in words:
> yield w
>
> message = "%s %s %s %s"
>
> print message % SentenceGenerator()
>
> (I ask because the above doesn't work)?
> -tom!
If you're asking if there's some way that the generator can know how
many formatting fields are in message then the straightforward answer
is no. At least not without passing the message to the generator for
it to call count() itself, and then you're better off just doing it
without the generator.
(Actually, IIRC, this was discussed quite recently on this list, and
(again IIRC) I think there is some deep voodoo that can do this, but
you're much better off without it.)
FWIW, in your shoes I would use the trick Justin Azoff posted, i.e.:
boiler = 'foo %(modname)s bar %(modname)s baz'
message = boiler % {'modname': modname}
Peace,
~Simon
More information about the Python-list
mailing list