Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Tobias Herp Newsgroups: de.comp.lang.python Subject: Re: [Python-de] strings zusammensetzen. Date: Fri, 25 Aug 2017 23:28:03 +0200 Lines: 111 Message-ID: References: <40c6ccec-4cbc-9614-dbdd-9e88cd1dccf0@gmx.de> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ioOU26cFMDjxA6HXG9WTIDgMnmFahHcWg" X-Trace: news.uni-berlin.de 97rpHZLBpngS6SKWR+p+OwzaIel4z0srba7PxxmqY0ew== Return-Path: X-Original-To: python-de@python.org Delivered-To: python-de@mail.python.org User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 SeaMonkey/2.46 In-Reply-To: X-Provags-ID: V03:K0:zuudnQeULqkQRsgoouhiuULSYeso3Y2WNPpARGIC4+ddOEZD2fp ikqnVHsCLiNaz7AwkZEdBCJb+NI5KZ56a/BFHSYmxmss/3XjX2zS8Xz2bqxamlKMQwzwgtp TNhXC+18LfE/3bpqta/HP2UeOW9IDNTcTgNfjmcQbjSaCFJcXmN0Ufttu81w1QNffBnMimk Eg3KVPNiwLzSKtDruCNaw== X-UI-Out-Filterresults: notjunk:1;V01:K0:4kAdM4PS9xM=:hi1+cAqersYz0GQLM4bb9C ++W+dJwPYS5ni/kaK/oYN2ifJ1JlHGYU75wMPBPXKykNER1fkN2bqKL2C2h/4nxOKRCzIa408 EOu/ykQe+oZljYza+cQdWFfPUIm8JCpkYzO6D/yHmBBA/WYIR3BfEimu6u0TeS/LYBl+V+vtV 6YJsUG0UEnYox2/x5q1Zfk1wKqegbGA1jZpp8qNW7VVkD3YYpi5S4rmAMHymERveSDsRqO8fh CITwjWY7/odcNXu88nwRPea5hBF14k8Mw+8OmVv9ruJPpcNMnJTU3T474eS4kGpgge/A9szwy g/xWLIAzSLr8NNvdLIkJwkg/Ckl3GwfYmXbBxKMmLZ8hv1iylwd/FHvEaiOiBdRBMH3w/hFtt WJ84bal+MAocz5due4qNuuVLYqZjvruM+9/o5Pws+hns1Jh4pJ5/vju0Y14kpXGfHRl2rn+lO Q6Vviz2b+6zMITpG4pvutc1kCWcm2BHPlPV0SbCE6lfMxR2t4i9Kig3Cmf5iavQkyjKgkT/+Y wD1l3DIsu+SU6UHS4kS84QWg3lPFuDa6HRpWFa9ReqHLCHAUINc1aDcd2UQibNMECdWLwgRy4 g5zt+eZjtZlwmYDGtTJyoB+9J18T03hwO/cZJf68W0J38gqVK3mu/NpbL1bDVjSpIrtujSOhi WDKeuKpXUX5GO4fKfR9cjTaI1HFLmNsGK24wFsA9o8nyhE9VyQYSPe47SEa2L0kXdpVnSqkdr PbBGhiHgd/KDH2HIN//7tuXVw4YeGR/7u/RslgaYyaqI0IViiM2mD8lg3m8iq45ZkmT1HTcQh FR4wWBsyx24sJqoy+ilojlAiSp/qw== X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.24 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <40c6ccec-4cbc-9614-dbdd-9e88cd1dccf0@gmx.de> X-Mailman-Original-References: Xref: csiph.com de.comp.lang.python:4868 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --ioOU26cFMDjxA6HXG9WTIDgMnmFahHcWg Content-Type: multipart/mixed; boundary="MHFBunA9RNiGFFFNjN2OxefOmgnc3TQig"; protected-headers="v1" From: Tobias Herp To: =?UTF-8?B?0J5s0LUg0IV0ctC10ZbRgWjQtXI=?= , python-de@python.org Message-ID: <40c6ccec-4cbc-9614-dbdd-9e88cd1dccf0@gmx.de> Subject: Re: [Python-de] strings zusammensetzen. References: In-Reply-To: --MHFBunA9RNiGFFFNjN2OxefOmgnc3TQig Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable =D0=9El=D0=B5 =D0=85tr=D0=B5=D1=96=D1=81h=D0=B5r schrieb am 25.08.2017 um= 10:47: > "Tobias Herp" writes: >>>> a b und c enthalten strings. >>>> >>>> d=3Da+b+c besser als # Variante 1 >>>> d=3D"{}{}{}".format(a,b,c) ? # Variante 2 >> >>> Die zweite Variante ist das =C3=BCbliche Idiom, wenn es um die Kombin= ation >>> von Strings geht. >> >> Wirklich? Himmel hilf! >=20 > Das h=C3=A4ngt IMO stark vom Use-Case ab. Oft hat man z.B. solche > String-Concatenierungen im Zusammenhang mit der Erstellung von > Dateinamen. Und da w=C3=A4re es besser, ein Template zu verwenden -- ge= nau im > Sinne von "explizit ist besser als implizit": Nur dadurch, da=C3=9F etwas umst=C3=A4ndlich programmiert ist, wird es no= ch nicht expliziter. Und umst=C3=A4ndlich ist es, wenn man zum Hinzuf=C3=BCgen ei= ner weiteren Variablen zwei =C3=84nderungen vornehmen mu=C3=9F. Es sollte jedenfalls nicht die Antwort auf die Frage sein, wie man in Python Strings verkettet. Das ist ja schlimmer als die concat-Funktionen anderen Sprachen! > d =3D "{base}{revision}{suffix}".format(base =3D a,=20 > revision =3D b, > suffix =3D c) Wenn's denn unbedingt ein Template sein soll, w=C3=BCrde das bei mir meis= tens wie folgt aussehen: d =3D '%(base)s%(revision)s%(suffix)s' % locals() (nat=C3=BCrlich nennt *niemand* seine Variablen a, b und c, bzw. w=C3=BCr= de es nach Lekt=C3=BCre dieses Threads niemals zugeben...) Im =C3=BCbrigen kann es nat=C3=BCrlich jedem St=C3=BCck Code in einem gr=C3= =B6=C3=9Feren Projekt (oder in einer Server-Anwendung) passieren, da=C3=9F es sehr oft durchlau= fen wird. Und sp=C3=A4testens dann spielt die Performanz eine Rolle. Die =2Eformat-Methode bezahlt f=C3=BCr ihre (ich behaupte: in mindestens 95% = der F=C3=A4lle nicht ben=C3=B6tigte) zus=C3=A4tzliche Flexibilit=C3=A4t mit s= ehr viel schlechterer Performanz. > Allgemein w=C3=BCrde ich, wenn es sich um Strings handelt, immer genau > schauen, ob man nicht eigentlich ein Template f=C3=BCllen m=C3=B6chte, = das nur > gerade zuf=C3=A4llig sehr einfach ausf=C3=A4llt. Man kann es auch =C3=BCbertreiben mit der vorausschauenden Komplexit=C3=A4= t. Wie hei=C3=9Ft es doch so sch=C3=B6n - YAGNI! You ain't gonna need it! Sch=C3=B6nenn Gru=C3=9F, Tobias --=20 Ceterum censeo: Etwaige .sig-Dateien brauchen nicht ge=C3=B6ffnet zu werden! Siehe , --MHFBunA9RNiGFFFNjN2OxefOmgnc3TQig-- --ioOU26cFMDjxA6HXG9WTIDgMnmFahHcWg Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (MingW32) Comment: Using GnuPG with SeaMonkey - http://www.enigmail.net/ iEYEARECAAYFAlmglm0ACgkQM/sLV1LEeIqKLQCfaeHiWoZMopMc2E7aueVewOr8 OgEAniUtcFtKzXyqDgpIELDemHYF1GSI =MVPo -----END PGP SIGNATURE----- --ioOU26cFMDjxA6HXG9WTIDgMnmFahHcWg--