I have this code that encounters the error: local variable 'vehicle' referenced before assignment. But when I look through my code below, I have assigned a list to the vehicle variable in the if
, elif
statement, before the 'vehicle' is being appended to the vehicles list. What could have gone wrong here?
def populate_vehicles(self, vehicle_file):
empty_str = ''
vehicle_str = vehicle_file.readline()
vehicle_info = vehicle_str.rstrip().split(',')
file_header_found = vehicle_info
vehicle_str = vehicle_file.readline()
while vehicle_str != empty_str:
vehicle_info = vehicle_str.rstrip().split(',')
if vehicle_str == '#CARS#' or vehicle_str == '#VANS#' or vehicle_str == '#TRUCKS#':
file_header_found = vehicle_str
else:
if file_header_found == '#CARS#':
vehicle = Car(*vehicle_info)
elif file_header_found == '#VANS#':
vehicle = Van(*vehicle_info)
elif file_header_found == '#TRUCKS#':
vehicle = Truck(*vehicle_info)
self.vehicles.add_vehicle(vehicle)
vehicle_str = vehicle_file.readline()