Mischen Sie Basis- und erweiterte Messungen in derselben Liste:
stations = [
WeatherReading("Aalen", 23.5, 65.0, 12.3),
AdvancedReading("Berlin", 19.0, 72.0, 8.5, 3.1, 1015.0),
WeatherReading("Munich", 21.3, 58.0, 15.1),
]
for station in stations:
print(station.city, "- feels like:", station.feels_like())
Python ruft automatisch die richtige Version von feels_like() auf. Basisstationen bekommen Windchill. Erweiterte Stationen bekommen UV-Anpassung. Gleicher Code, anderes Verhalten.
Das ist Polymorphismus -- griechisch für "viele Formen."