#python #классы
Есть два объекта, при передаче их в for и вызове метода класса, в терминал выкидывается ошибка - AttributeError: 'tuple' object has no attribute 'introduce'. С чем это может быть связано? class Personal_Data: def __init__(self, name, surname, phone_number): self.name = name self.surname = surname self.phone_number = phone_number def introduce(self): print("Имя: {0}, Фамилия: {1}, Номер телефона {2}".format(self.name, self.surname, self.phone_number)) Vasiliy = Personal_Data('Vasiliy', 'Valakas', '88005553535'), Ivan = Personal_Data('Ivan', 'Ivanov', '88005553535') members = [Vasiliy, Ivan] print("Что можно сделать: Посмотреть контакты (наберите 'контакты'), Добавить новый контакт ('добавить'), Удалить контакт ('удалить')") void = input("Что будем делать --> ") if void != void.lower(): void = void.lower() # Если в строке есть символы с верхним регистром, то они переводятся в нижний if void == 'контакты': for member in members: member.introduce()
Ответы
Ответ 1
Ошибка вызвана запятой в конце следующей строки: Vasiliy = Personal_Data('Vasiliy', 'Valakas', '88005553535'), Пример: In [133]: a = 1, In [134]: a Out[134]: (1,) In [135]: type(a) Out[135]: tupleОтвет 2
Все дело в запятой: Vasiliy = Personal_Data('Vasiliy', 'Valakas', '88005553535'), # <-- Ivan = Personal_Data('Ivan', 'Ivanov', '88005553535') которая превращает одиночный объект в tuple. print(Vasiliy) выведет (<__main__.Personal_Data object at 0x7fcf9736e780>,) Уберите запятую, и все заработает как надо.Ответ 3
Нужно убрать запятую в конце строчки с Василием.Ответ 4
В конце 10 строки,где ты создал объект valiliy лишняя запятая.Будь внимательнее)
Комментариев нет:
Отправить комментарий