AW: [Python-de] Zwei Fragen

Dinu Gherman gherman at darwin.in-berlin.de
Tue Aug 13 11:50:28 EDT 2002


Christian Tanzer:

> Was funktioniert in Rainer's Lösung nicht?
>
> Python 2.2.1 (#1, Jul 18 2002, 06:59:41)
> [GCC 2.95.4 20011002 (Debian prerelease)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> dstamp= '24.12.2002'
>>>> (lambda (d, m, y): '%s-%s-%s' % (y, m, d)) (dstamp.split ('.'))
> '2002-12-24'
>
> IMHO sieht das ein bißchen einfacher aus als Dein Doppel-Lambda:
>
>>>>> f = lambda s: '%s-%s-%s' % (lambda (d, m, y): (y, m, 
>>>>> d))(s.split('.'))

Mich stoerte daran, dass man den Ausdruck allein nicht gebrauchen kann,
sondern nur in Zusammenhang mit einem zuvor definierten String namens
'dstamp'. Das ist dann nicht mehr allzu funktional. Meine Version hat
den Vorteil, dass ich sie mit einem Namen versehen kann (hier 'f') und
keine Bindung an externe Variablen mehr existiert.

Und: wenn man den Ausdruck oefter braucht, moechte man ihn ja nicht
mehrfach im Code stehen haben. Wenn man ihn nur einmal braucht, gut,
aber selbst dann kann er an einer "unmoeglichen" Stelle im Code vor-
kommen, der einem die selbstauferlegten Coding-Standards vermasselt...

Zugegeben, ich haette das alles vorher schon schreiben sollen - sorry.

Dinu





More information about the Python-de mailing list