[Python-3000] features i'd like [Python 3000?] ... #4: interpolated strings ala perl

Jan Grant jan.grant at bristol.ac.uk
Wed Dec 6 17:53:13 CET 2006


On Wed, 6 Dec 2006, Barry Warsaw wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On Dec 6, 2006, at 5:24 AM, Jan Grant wrote:
> 
> > PS. IF generic functions (operators) could be sensitive to return types
> > and IF python6k supported a complex type inference mechanism (possibly
> > including automatic coercion), then one might be able to do something
> > like:
> > 
> > def foo(d: sqlDriver):
> >  s = "select template goes here" % (param1, param2)
> >  r = d.query(s)
> > 
> > where sqlDriver has a method
> > 
> > def query(self, s: some_type_that_signals_sql_interpolation)
> > 
> > and "%" is overloadable on the basis that the return type is determined
> > to be compatible with "some_type_that_signals_sql_interpolation". Those
> > are some mighty big "IF"s though, and you could still concoct cases
> > where things would break :-)
> 
> BTW, I believe that most of the SQL wrapper packages for Python already
> provide safe prepared statement like functionality, that is convenient to use.

You are absolutely right, and on reflection I think I concur.

Whilst some hoop-jumping *might* be possible to ensure that the 
formatting operator % is compatible with various application-specific 
quoting requirements (and without which "string interpolation" in the 
language is a terrible misfeature IMHO*), appropriate (and suitably 
"pythonic") mechanisms already exist for this in the libraries I care 
about.

jan

* by using any proposed string interpolation syntax as sugar for a 
  %-expression

-- 
jan grant, ISYS, University of Bristol. http://www.bris.ac.uk/
Tel +44 (0)117 3317661   http://ioctl.org/jan/
Goth isn't dead, it's just lying very still and sucking its cheeks in.


More information about the Python-3000 mailing list