class Train: # Создание класса поезд.
def __init__(self, naznachenie, number, time): # Конструктор класса, экземпляр объекта - для вызова.
if number.isalnum: # Условие с функцией - возвращающей в истину,
self.NumberPoezda = number # если все символы в строке буквенные и числовые, иначе ложь.
else: # Иначе вывести следующее сообщение:
print("Некорректный номер поезда! Номер должен содержать только буквы и цифры.") # Оператор прерывания.
self.NazvaniePunktaNaznachenija = naznachenie # Обращение.
self.VremjaOtpravlenija = time # Обращение.
def state(self, time): # Приём аргументов.
time1 = time.split(':') # Разделитель.
time2 = self.VremjaOtpravlenija.split(':') # Разделитель.
if time1[0] > time2[0] or (time1[0] == time2[0] and time1[1] > time2[1]): # Условие времени отправления.
return 'Поезд уже в пути!' # Повтор записи.
else: # Иначе вывести:
return 'Поезд ещё не отправился!' # Повтор записи.
class FreightTrain(Train): # Создание класса товарный поезд.
def __init__(self, naznachenie, number, time, g): # Конструктор класса, экзмепляр объекта - для вызова.
Train.__init__(self, naznachenie, number, time) # Получение состояния объекта.
self.passajiri = {} # Получение состояния объекта из класса пассажиский поезд.
self.gruz = g # Получение состояния объекта.
class PassengerTrain(Train): # Создание класса пассажирский поезд.
def __init__(self, naznachenie, number, time, p): # Конструктор класса, экзмепляр объекта - для вызова.
Train.__init__(self, naznachenie, number, time) # Получение состояния объекта.
self.passajiri = p # Получение состояния объекта.
self.gruz = {} # Получение состояния объекта из класса товарный поезд.
class Vokzal: # Создание класса вокзал.
def __init__(self, grd, pzd): # Конструктор класса, экзмепляр объекта - для вызова.
self.gorod = grd # Обращение.
self.poezda = pzd # Обращение.
Poezd1 = FreightTrain("Поезд №1", "Барнаул", "12:00",
{"Каменный уголь": "Вагон 1-3", "Древесный уголь": "Вагон 4-6",
"Кирпич": "Вагон 7-9"})
Poezd2 = PassengerTrain("Poezd №2", "Барнаул", "12:00", {"Рубоцв Кирилл Дмитриевич": "Вагон 1, место 1",
"Иванов Иван Иванович": "Вагон 1, место 2",
"Петров Пётр Петрович": "Вагон 1, место 3",
"Сидоров Сидор Сидорович": "Вагон 1, место 4"})
Barnaul = Vokzal("Барнаул", [Poezd1, Poezd2])