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 ...

Get Programmieren von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.