Path: blob/master/exercices/oop/airport/solution_airport.py
306 views
import datetime123class Airport:4def __init__(self, name: str) -> None:5self.name: str = name678class Stopover:9def __init__(10self,11landing_date: datetime.datetime,12takeoff_date: datetime.datetime,13airport: Airport,14) -> None:15self.takeoff_date: datetime.datetime = takeoff_date16self.landing_date: datetime.datetime = landing_date17self.airport: Airport = airport181920class Flight:21def __init__(22self,23takeoff_date: datetime.datetime,24landing_date: datetime.datetime,25takeoff_airport: Airport,26landing_airport: Airport,27) -> None:28self.takeoff_date: datetime.datetime = takeoff_date29self.landing_date: datetime.datetime = landing_date30self.takeoff_airport: Airport = takeoff_airport31self.landing_airport: Airport = landing_airport32self.stopovers: list(Stopover) = []33self.bookable: bool = True3435def print_travel(self):36print(f"Flight from {self.takeoff_airport.name} to {self.landing_airport.name}")37print(f"- {self.takeoff_airport.name} : {self.takeoff_date}")38for stopover in self.stopovers:39print(40f"- {stopover.airport.name} : {stopover.landing_date} -> {stopover.takeoff_date}"41)42print(f"- {self.landing_airport.name} : {self.landing_date}")434445cdg = Airport("Paris CDG")46amsterdam = Airport("Amsterdam")47oslo = Airport("Oslo")48helsinki = Airport("Helsinki")4950flight_49 = Flight(51datetime.datetime(2022, 8, 20, 19, 43),52datetime.datetime(2022, 8, 21, 8, 57),53cdg,54helsinki,55)5657flight_49.stopovers.append(58Stopover(59datetime.datetime(2022, 8, 20, 22, 22),60datetime.datetime(2022, 8, 20, 23, 23),61amsterdam,62)63)6465flight_49.stopovers.append(66Stopover(67datetime.datetime(2022, 8, 21, 5, 5), datetime.datetime(2022, 8, 21, 6, 6), oslo68)69)7071flight_49.print_travel()727374