building strings with variable input
Paul McGuire
ptmcg at users.sourceforge.net
Wed Jan 14 02:39:21 EST 2004
"Tim Roberts" <timr at probo.com> wrote in message
news:3rr900dm9s7th7kgq4muj76d5ocs5uep3b at 4ax.com...
> Olaf Meyer <nomail at nospam.net> wrote:
> >
> >I just found out another way ;-) Using the locals() has the disadvantage
> >that I cannot use more complex variable parameters (e.g. certain values
> >of a dictionary). The following works well:
> >
> >cmd = (executable + " -start " + startTime + " -end " + endTime +
> > " -dir " + options.dir)
>
> Yes, that works, but you should bear in mind that it is slower than the %s
> option. The "+" operations are all separate interpreter steps, while the
> "%" operation is done in C.
>
On the relative time scales of concatenating 7 strings compared to forking
off a separate process (which I presume is what is to be done with cmd), I'd
go for the more readable representation, to aid in long term
maintainability.
If I have some string concatenation being done in a highly repetitive part
of code, then by all means, replace it with one of the half dozen documented
optimized alternatives. But if I build a string in order to create a
sub-process, or invoke a database query, or make a remote CORBA invocation,
etc., then these "optimizations" don't really save much time, and instead
distract me/reviewers/testers/maintainers from the important program logic.
-- Paul
More information about the Python-list
mailing list