Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #4621
| Path | csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail |
|---|---|
| From | Stefan Schwarzer <sschwarzer@sschwarzer.net> |
| Newsgroups | de.comp.lang.python |
| Subject | Re: [Python-de] Wie sieht Python fuer mich aus? |
| Date | Mon, 9 Jan 2017 06:23:06 +0100 |
| Lines | 87 |
| Message-ID | <mailman.364.1483939389.2395.python-de@python.org> (permalink) |
| References | <Python-20170108184230@ram.dialup.fu-berlin.de> <0a1a079d-99e2-f353-9334-ad2b20344449@sschwarzer.net> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=windows-1252 |
| Content-Transfer-Encoding | 8bit |
| X-Trace | news.uni-berlin.de O13bo3OB28q9stqFe3WnkQsRhG63GulivoqdBI+lq6kw== |
| Return-Path | <sschwarzer@sschwarzer.net> |
| X-Original-To | python-de@python.org |
| Delivered-To | python-de@mail.python.org |
| User-Agent | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.24) Gecko/20100411 Thunderbird/2.0.0.24 Mnenhy/0.7.6.666 |
| In-Reply-To | <Python-20170108184230@ram.dialup.fu-berlin.de> |
| X-Provags-ID | V03:K0:SSt6J95ejNqxDJRKCJt2yyml+MvKFSmqmvur0Zy4ujb1AdaJQWq csGUtxLqh2eEdCKcK4LAxX1gH1w4ho64VVc1sMgcvEIy8BkEXYQA1byMd91066DacC4Qx9+ o04hIZ7To0AFpq867gzOLgMEz4kbpzfSSQtAOpvRNhLhwIVEjRVUsrthpq3/C3tp/kBKGrm j4Ln1e49DUeqnds1VWv9w== |
| X-UI-Out-Filterresults | notjunk:1;V01:K0:b8EbfVbsDgI=:o0J2yYOAkOW4Mt9R1k26gU YV3aPVrOiTyjm/FfJ0DKU2W55rcMjMxYiiopMP08HWhTViPheGr5SeSlR9SD3VnUW0SLJXjMa h1s22jrYDF+3K2xwBjGDEV+IwtKkYH311OzIhocy6K+kikntvOmX+rdggWqM9GPyIzD4T2xji jkanu8JX90uNPOuUpvcjamP6sJx7TienK0YY1udIgq1UuJcI2cW/yh757PZmXyuFaKp02jnuM ewam820Nx3RJHZ1gWXEz6pAWDunp6eLnTt5eKUaGgUa75w985X5f8vq5xnBjVXyRSFiDEGP9r sCjpzrxcItKq1y8oBU0o4/WMAwFxGvh4fDUcM4cbus08wVYC4L5edwIDEaqU2pGyYXdivkuzG FaS+9u/cklM0TZiRJlkV4iClza/wxq/pqFS6RRs/wP1AQJOF8xfTlBZVnhpcOAf7WqFCXGIWH ukpnLBQT7CXRy12o6cAXTh4TLlMMhWpyBT05NlzzYYRwQiO354CYMz6TMQI2oFS4ieh7ZMBzT Z7ykGk96igfaUnZvWubJ5xqtFpE0zyOdyYXs6wuvWUlhvg+nvbi9wYrRs44VlgeYEyGq+Bl1B nTAmRUR54BovUGQbemjOAPehi8aG0A+qoBF84Eu2pN/0Vmt1uxnp+y8if4RyFf1u2WG4WJgyj eAon8WHTEzg4jXEG7UQetwiA6RsR8aBsJLBhaKBD7J4YZjhIyMACXaefTcCaTvrdtJmEpmhti cEYcJmI6AYG9mEtO |
| X-BeenThere | python-de@python.org |
| X-Mailman-Version | 2.1.23 |
| Precedence | list |
| List-Id | Die Deutsche Python Mailingliste <python-de.python.org> |
| List-Unsubscribe | <https://mail.python.org/mailman/options/python-de>, <mailto:python-de-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-de/> |
| List-Post | <mailto:python-de@python.org> |
| List-Help | <mailto:python-de-request@python.org?subject=help> |
| List-Subscribe | <https://mail.python.org/mailman/listinfo/python-de>, <mailto:python-de-request@python.org?subject=subscribe> |
| X-Mailman-Original-Message-ID | <0a1a079d-99e2-f353-9334-ad2b20344449@sschwarzer.net> |
| X-Mailman-Original-References | <Python-20170108184230@ram.dialup.fu-berlin.de> |
| Xref | csiph.com de.comp.lang.python:4621 |
Show key headers only | View raw
Hi Stefan,
On 2017-01-08 18:52, Stefan Ram wrote:
> Ausgeben
>
> »print« rundet Zahlen bei der Ausgabe etwas, während die
> Konsole alle Nachkommastellen anzeigt.
`print` verwendet die Methode `__str__` zur Umwandlung in
einen String, während in der Konsole (Python-Shell)
`__repr__` verwendet wird. Beide Methoden können
unterschiedlich implementiert sein (siehe unten).
> Variablen
>
> Eine Variable wird durch eine Zuweisung definiert. Eine
> Variable hat keinen Typ, sondern Werte haben einen Typ.
Eine wichtige Einsicht!
> Eine Variable wird an eine Liste gebunden, die Liste wird
> also bei einer Zuweisung nicht kopiert. (Kopieren kann mit
> nachgestelltem slice »[:]« erfolgen.)
Das kopiert nur die erste "Ebene" der Liste ("flache Kopie",
"shallow copy"). "Innere" Listen oder Objekte werden dabei
also nicht kopiert, sondern deren Referenzen übernommen.
>>> L = [[1, 2], [3, 4]]
>>> L2 = L[:]
>>> L[0].append(2)
>>> L2
[[1, 2, 2], [3, 4]]
> »range(2,7)« ergibt einen Bereich (einen Iterator) und
> »range(2)« bedeutet »range(0,2)«.
In Python 2 ergibt `range` eine Liste, in Python 3 einen
Iterator.
> Die spezielle Methode »__string__« repräsentiert Objekte
> einer Klasse als Zeichenfolge.
>
> Muster
>
> def __string__(self,...):
> return "string"
Du meintest wahrscheinlich `__str__`. Wie oben gesagt, gibt
es auch noch `__repr__`. Üblicherweise wird `__str__` für
eine "nutzerfreundliche" Darstellung verwendet und
`__repr__` eher für eine "entwicklerfreundliche".
>>> s = "abc "
>>> print(s)
abc
>>> s # Nur hier sieht man das Leerzeichen am Ende
'abc '
>>> import decimal
>>> d = decimal.Decimal("1.23")
>>> print(d)
1.23
>>> d
Decimal('1.23')
Zu deinem Beispiel: "Technisch" kann man `__str__` und
`__repr__` mit weiteren Argumenten außer `self` definieren,
aber es wird praktisch nie gemacht: Beide Methoden werden
üblicherweise in Zusammenhängen verwendet, bei denen keine
Argumente übergeben werden (können).
>>> class A:
... def __str__(self, x="x"):
... return "a" + x
...
>>> a = A()
>>> print(a)
ax
>>> print(a.__str__("y"))
ay
Wie du siehst, ist der explizite Aufruf von `__str__`
relativ "unhandlich". :-)
Viele Grüße
Stefan
Back to de.comp.lang.python | Previous | Next | Find similar
Re: [Python-de] Wie sieht Python fuer mich aus? Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2017-01-09 06:23 +0100
csiph-web