Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import csv
- class BaseCar:
- def __init__(self, photo_file_name, brand, carrying):
- self.photo_file_name = photo_file_name
- self.brand = brand
- self.carrying = carrying
- def get_photo_file_ext(self):
- return os.path.splitext(self.photo_file_name)[1]
- class Car(BaseCar):
- def __init__(self, photo_file_name, brand, carrying, passenger_seats_count):
- super().__init__(photo_file_name, brand, carrying)
- self.car_type = 'car'
- self.passenger_seats_count = passenger_seats_count
- class Truck(BaseCar):
- def __init__(self, photo_file_name, brand, carrying, body_lwh):
- super().__init__(photo_file_name, brand, carrying)
- self.car_type = 'truck'
- lwh = body_lwh or '0x0x0'
- l, w, h = (float(i) for i in lwh.split('x'))
- self.body_length = l
- self.body_width = w
- self.body_height = h
- def get_body_volume(self):
- return self.body_length * self.body_width * self.body_height
- class SpecMachine(BaseCar):
- def __init__(self, photo_file_name, brand, carrying, extra):
- super().__init__(photo_file_name, brand, carrying)
- self.car_type = 'spec_machine'
- self.extra = extra
- def get_car_list(csv_filename):
- car_list = []
- with open(csv_filename) as csv_fd:
- reader = csv.reader(csv_fd, delimiter=';')
- next(reader) # пропускаем заголовок
- for row in reader:
- try:
- if row[0] == 'car':
- car_list.append(Car(row[3], row[1], float(row[5]), int(row[2])))
- elif row[0] == 'truck':
- car_list.append(Truck(row[3], row[1], float(row[5]), row[4]))
- elif row[0] == 'spec_machine':
- car_list.append(SpecMachine(row[3], row[1], float(row[5]), row[6]))
- else:
- pass
- except IndexError:
- pass
- return car_list
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement