O'Reilly logo

Programmieren von Kopf bis Fuß by Paul Barry, David Griffiths

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Die beiden Rabattfunktionen haben den gleichen Namen

Hier ist das gerade von Ihnen erstellte Modul promotion.py:

def rabatt(preis):
    return 0.9 * preis

Und hier ist das Modul sternback.py:

# Offizielles Sternback-Rabattmodul
# Copyright(c) Sternback & Co.
# Alle Rechte vorbehalten.
# Berechnet einen Rabatt von 5% auf einen Preis
def rabatt(preis):
    return 0.95 * preis

Beide Module definieren eine Funktion namens rabatt(). Was also passiert, wenn Sie versuchen, sie zu nutzen? Was macht Python, wenn es eine Zeile wie diese sieht:

preis_neu = rabatt(1.75)

Welche Funktion ruft es auf? Unseren Promo-Rabatt? Den Sternback-Rabatt? Beide? Keine???

Das ist eins der Probleme beim Teilen von Code. Gelegentlich gibt es in Modulen Funktionen mit dem gleichen Namen ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required