UnboundLocalError: local variable 'cars' referenced before assignment
我正在制作一个程序,通过菜单存储和显示汽车的库存。但是,我不断地收到错误:
1 2 3 | ".py", line 24, in car_invent cars = cars.Car(make, model, mileage, price, doors) UnboundLocalError: local variable 'cars' referenced before assignment" |
我已经从一开始就导入了这个模块,我不明白它为什么会给我这个错误。
我的代码是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | import cars def print_desc(item): print"Make:", item.get_make() print"Model:", item.get_model() print"Mileage:", item.get_mileage() print"Price:", item.get_price() def car_invent(): car_invent = [] print"Enter data for the cars." num_cars = input("Enter number of cars:") for count in range(num_cars): make = raw_input("Enter the make:") model = input("Enter the year model:") mileage = input("Enter the mileage:") price = input("Enter the price:") doors = input("Enter the number of doors:") cars = cars.Car(make, model, mileage, price, doors) car_invent.append(cars) return car_invent def truck_invent(): truck_invent = [] print"Enter data for the trucks." num_trucks = input("Enter number of trucks:") for count in range(num_trucks): make = raw_input("Enter the make:") model = input("Enter the year model:") mileage = input("Enter the mileage:") price = input("Enter the price:") drive_type = input("Enter the drive type:") trucks = cars.Truck(make, model, mileage, price, drive_type) truck_invent.append(truck) return truck_invent def suv_invent(): suv_invent = [] print"Enter data for the cars." num_suv = input("Enter number of SUVs:") for count in range(1, num_suv): make = raw_input("Enter the make:") model = input("Enter the year model:") mileage = input("Enter the mileage:") price = input("Enter the price:") pass_cap = input("Enter passenger capacity:") suv = cars.SUV(make, model, mileage, price, pass_cap) suv_invent.append(suv) return suv_invent def read_invent(car_invent, truck_invent, suv_invent): print"USED CAR INVENTORY" print"==================" print"The following car is in inventory." for item in car_invent: print_desc(item) print"Number of doors:", item.get_doors() print"The following pickup truck is in inventory." for item in truck_invent: print_desc(item) print"Drive type:", item.get_drive_type() print"The following SUV is in inventory." for item in suv_invent: print_desc(item) print"Passenger Capacity:", item.get_pass_cap() def menu(): print"MENU" print"=====" print"1. Enter data for inventory" print"2. Display inventory" print"3. Quit" def main(): menu() choice = input("Enter choice:") while choice != 3: if choice == 1: cars = car_invent() trucks = truck_invent() suv = suv_invent() choice = input("Enter choice:") elif choice == 2: read_invent(cars, trucks, suv) choice = input("Enter choice:") else: print"Invalid choice" choice = input("Enter choice:") main() |
以下是供参考的模块:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | class Automobile: def __init__(self, make, model, mileage, price): self.__make = make self.__model = model self.__mileage = mileage self.__price = price def set_make(self, make): self.__make = make def set_model(self, model): self.__model = model def set_mileage(self, mileage): self.__mileage = mileage def set_price(self, price): self.__price = price def get_make(self): return self.__make def get_model(self): return self.__model def get_mileage(self): return self.__mileage def get_price(self): return self.__price class Car(Automobile): def __init__(self, make, model, mileage, price, doors): Automobile.__init__(self, make, model, mileage, price) self.__doors = doors def set_doors(self, doors): self.__doors = doors def get_doors(self): return self.__doors class Truck(Automobile): def __init__(self, make, model, mileage, price, drive_type): Automobile.__init__(self, make, model, mileage, price) self.__drive_type = drive_type def set_drive_type(self, drive_type): self.__drive_type = drive_type def get_drive_type(self): return self.__drive_type class SUV(Automobile): def __init__(self, make, model, mileage, price, pass_cap): Automobile.__init__(self, make, model, mileage, price) self.__pass_cap = pass_cap def set_pass_cap(self, pass_cap): self.__pass_cap = pass_cap def get_pass_cap(self): return self.__pass_cap |
1 | cars = cars.Car(make, model, mileage, price, doors) |
声明一个名为
您将
但是
你的程序死机了