Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: ole-usenet-spam@gmx.net (=?utf-8?B?0J5s0LUg0IV0ctC10ZbRgWjQtXI=?=) Newsgroups: de.comp.lang.python Subject: Re: strings zusammensetzen. Date: Wed, 30 Aug 2017 08:32:11 +0200 Lines: 50 Message-ID: <87bmmx4lck.fsf@gmx.net> References: <9gjg7e-jn3.ln1@gate.homenet> Reply-To: =?utf-8?B?0J5s0LUg0IV0ctC10ZbRgWjQtXI=?= Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net 1Lk2NuGb9DVIRuPO2+LLgwgsuCM7B/PguPyl/hoySc7KF1y3DU/uve0w== Cancel-Lock: sha1:86B7fCUBf0kuj/LfbIOkhX/ZWoo= sha1:IRzOFK38ctPlnmnOzhWrTeVvheM= User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) Xref: csiph.com de.comp.lang.python:4880 ram@zedat.fu-berlin.de (Stefan Ram) writes: > Thomas Orgelmacher writes: >>Am 25.08.2017 um 07:45 schrieb Hermann Riemann: >>>d=a+b+c besser als >>>d="{}{}{}".format(a,b,c) ? >>In diesem Fall ist das fast egal. > ... >>Ich würde den + Operator bevorzugen. > > Das kann ich beides unterstreichen! > > Wenn etwas lesbar genug ist, dann lohnt es sich > nicht mehr, sich zu überlegen, was "lesbarer" ist. Es lohnt sich aber, zu überlegen, ob es wirklich das ausdrückt was man sagen will -- explizit ist besser als implizit. Zusammenfügen von n Strings (mit n=3): s = a + b + c Bildung eines neuen String mithile eines (trivialen) Templates: s = "{name}{md5}{suffix}".format(name=a, md5=b, suffix=c) > Kann jemand bei der folgenden Eingabe sofort erkennen, ob > die Anzahl der »{}« gleich der Anzahl der Variablen ist? > > "{}{}{}{}{}{}{}{}{}{}".format( a, b, c, d, e, f, g, h, i, j ) Das geht davon aus, dass die Bildungsvorschrift (Concatenieren) fix ist und die Zahl der Argumente prinzipiell variabel. Was der OP so nicht formuliert hat. > Kann ich als Wartungsprogrammierer jetzt ohne weiteres wissen, > ob der Werte dieses letzten Ausdrucks so beabsichtigt war? > Ob das »j« vielleicht gelöscht werden oder ein »{}« > hinzugefügt werden soll? Schreibe die Semantik dazu (explizit besser als implizit), und es wird sofort klar. > (Brille aufsetzen!)? Solche Fragen treten bei > > a + b + c + d + f + g + h + i + j > > nicht auf Richtig. Da wird nämlich gar nicht auffallen, dass das "e" fehlt. (Sorry fürs Zitatfälschen) Ole