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.