Re: sketch-0.6.13

Författare: Martin Sjögren (md9ms_at_mdstud.chalmers.se)
Datum: 2002-06-19 15:35:55

On Wed, Jun 05, 2002 at 10:20:03PM +0200, Göran Uddeborg wrote:
> =?iso-8859-1?Q?Martin_Sj=F6gren?= writes:
> > Python's %-operator tillåter en del tuffa saker som sprintf inte klarar.
> > Med %(foo)s-syntaxen måste du skicka med en dictionary (hash/mappning) som
> > andra argument. T.ex. skulle
> > 
> > "%(message)s (%(count)d times)" % { 'message': 'foobar', 'count': 42 }
> > 
> > expanderas till
> > 
> > "foobar (42 times)"
> 
> Verkar smart.  Python står på min att-lära-lista.  Hoppas jag kommer
> till det någon gång.

Jag kom att tänka på en annan tuff sak man kan göra med det här :-) Man
behöver inte skicka med en dictionary, det räcker med något som _ser ut_
som en dictionary. För klasser innebär det att de ska implementera
__getitem__:

class Eval:
    def __getitem__(self, key):
        return eval(key)

e = Eval()

print '%(2+3)d' % e
namn = 'Martin'
stad = 'Göteborg'
print '%(namn)s bor i %(stad)s' % e


Det ni ;)


/M

-- 
Martin Sjögren
  md9ms@mdstud.chalmers.se       ICQ : 41245059
  Phone: +46 (0)31 405242        Cell: +46 (0)739 169191
  GPG key: http://www.mdstud.chalmers.se/~md9ms/gpg.html

Arkiv genererat av hypermail 2.1.4.