У меня есть программа, которая хранит информацию о танспортных средствах:
class Transport(object):
def __init__ (self, s, c, m, n):
self.speed = s
self.color = c
self.made = m
self.number = n
def __str__ (self):
s="Скорость:" + str(self.speed) + ",цвет:" + self.color + ", производитель:" + self.made + ", регистрационный номер:" + self.number + "\n"
s=str(s)
return s
def go(self):
print("Начинает движение ", self.made)
def stop(self):
print("Остановка ",self.made)
def signal(self):
print(self.made, "подаёт звуковой сигнал")
def info(self):
print("Скорость:" + self.speed + ",цвет:" + self.color + ", производитель:" + self.made + ", регистрационный номер:" + self.number)
transport1 = Transport(20, "blue", "Forward", "1001")
transport2 = Transport(180, "white", "Ford", "1002")
transport3 = Transport(100, "red", "MA3", "1003")
spisok=["transport1", "transport2", "transport3"]
def main_menu():
print ('''
Вы в главно меню!
Выберите дейстиве:
1. Добавить новое транспортное средство
2. Удалить транспортное средство
3. Вывести информацию о транспортном средстве
4. Редиктировать информацию о транспортном средстве
5. Выполнить дейстиве с объектом
6. Выход
''')
action = int(input("Выберите дейстиве: "))
if action == 1:
print ("Добавить т. с.")
main_menu()
elif action == 2:
print ("Удалить т.с")
main_menu()
elif action == 3:
ts=int(input("Введите номер транспортного средства:"))
if ts>len(spisok):
print("В вспике всего {len(spisok)} машин!")
else:
spisok[ts-1].info()
main_menu()
elif action == 4:
ts=int(input("Введите номер транспортного средства:"))
if ts>len(spisok):
print("В вспике всего {len(spisok)} машин!")
else:
j=str(input("Что вы хотите отредкатировать? "))
if j=="скорость":
s=int(input("Введите новую скорость: "))
spisok[ts-1]=s
elif j=="цвет":
c=int(input("Введите новый цвет: "))
spisok[ts-1]=c
elif j=="производитель":
m=int(input("Введите нового производителя: "))
spisok[ts-1]=m
elif j=="регистрационный номер":
n=int(input("Введите новоый рег. номер: "))
spisok[ts-1]=n
else:
print ("Некорректный ввод")
main_menu()
elif action==5:
ts=int(input("Введите номер транспортного средства:"))
ac=str(input("Какое действие вы хоитие сделать? "))
if ts>len(spisok):
print("В вспике всего {len(spisok)} машин!")
else:
if ac=="ехать":
spisok[ts-1].go()
elif ac=="остановиться":
spisok[ts-1].stop()
elif ac=="подать сигнал":
spisok[ts-1].signal()
else:
print ("Некорректный ввод")
main_manu()
elif action==6:
sys.exit
main_menu()
И она выдаёт ошибку:
Traceback (most recent call last):
File "E:Python\main3.py", line 86, in <module>
main_menu()
File "E:Python\main3.py", line 46, in main_menu
spisok[ts-1].info()
AttributeError: 'str' object has no attribute 'info'
Объясните пожалуйста, в чем может быть проблема?
spisok=["transport1", "transport2", "transport3"]->spisok = [transport1, transport2, transport3](уберите кавычки в создании списка). – n1tr0xs Sep 23 '23 at 05:30