Как добавить добавить экземпляры класса в список - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь стать лучше на уроках. Я хочу добавить несколько автомобилей (с такими атрибутами, как номерной знак и время (это для камеры безопасности)) в список. У меня было это на самом деле работает, но теперь это внезапно не работает, и я понятия не имею, что происходит.

class CarID:
  def __init__(self, camera, cartime, plate):
    self.camera = camera
    self.plate = plate
    self.cartime = cartime

class Cars:
  def __init__(self):
    self.cars = []

  def addCar(self, car):
    self.cars.append(car)

Основная программа:

def make_lists_cars(data):
  car_list = Cars()
  with open(data, newline='') as f:
    f = f.readlines()
    for line in f[2:-2]:
        car = line.split("\t") 
        camera = car[0]
        cartime = car[1]
        plate = car[2]
        car_list.addCar(CarID(camera, cartime, plate))
  return car_list


data = 'verkeer.txt'
car_list = make_lists_cars(data)
print(Cars().cars)

Это дает мне просто пустой список. Все переменные машины выглядят как ['1', '09: 01: 53 ',' 2-ABC-32 \ n ']. Я на самом деле хочу иметь список автомобилей с атрибутами. У меня это работало пару часов назад, но затем я хотел добавить второй список, и теперь он работает stopepd :(. Также я должен вернуть car_list, или это не обязательно?

Спасибо

1 Ответ

0 голосов
/ 16 сентября 2018

Cars().cars обращается к атрибуту cars из нового экземпляра Cars.Cars() в последней строке вашего кода только что инициализирован, и к атрибуту cars Cars() не добавлено ни одного объекта CarId.Вместо этого ищите cars из возвращенного результата make_lists_cars:

print(car_list.cars)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...