Skip to Content
Fließendes Python, 2. Auflage
book

Fließendes Python, 2. Auflage

by Luciano Ramalho
August 2024
Intermediate to advanced
1014 pages
26h 54m
German
O'Reilly Media, Inc.
Book available
Content preview from Fließendes Python, 2. Auflage

Kapitel 16. Überladen von Operatoren

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Bei einigen Dingen bin ich hin- und hergerissen, zum Beispiel bei der Überladung von Operatoren. Ich habe die Überladung von Operatoren aus persönlichen Gründen weggelassen, weil ich gesehen habe, dass zu viele Leute sie in C++ missbrauchen.

James Gosling, Erfinder von Java1

In Python kannst du den Zinseszins mit einer Formel wie dieser berechnen:

interest = principal * ((1 + rate) ** periods - 1)

Operatoren, die zwischen Operanden stehen, wie 1 + rate, sind Infix-Operatoren. In Python können die Infix-Operatoren mit jedem beliebigen Typ umgehen. Wenn du also mit echtem Geld arbeitest, kannst du sicherstellen, dass principal, rate und periods exakte Zahlen sind - Instanzen der Python-Klasse decimal.Decimal - und die Formel wird wie geschrieben funktionieren und ein exaktes Ergebnis liefern.

Aber wenn du in Java von float zu BigDecimal wechselst, um genaue Ergebnisse zu erhalten, kannst du die Infix-Operatoren nicht mehr verwenden, weil sie nur mit den primitiven Typen funktionieren. Das ist dieselbe Formel, die für BigDecimal Zahlen in Java codiert ist:

BigDecimal interest = principal.multiply(BigDecimal.ONE.add(rate)
                        .pow(periods).subtract(BigDecimal.ONE));

Es ist klar, dass Infix-Operatoren die Lesbarkeit von Formeln verbessern. Die Überladung von Operatoren ist notwendig, um die Notation von Infix-Operatoren ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Python lernen, 5. Auflage

Python lernen, 5. Auflage

Mark Lutz
High Performance Python, 2. Auflage

High Performance Python, 2. Auflage

Micha Gorelick, Ian Ozsvald
Python in a Nutshell, 4. Auflage

Python in a Nutshell, 4. Auflage

Alex Martelli, Anna Martelli Ravenscroft, Steve Holden, Paul McGuire

Publisher Resources

ISBN: 9781098180362Supplemental Content