#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 лишняя запятая.Будь внимательнее)
Комментариев нет:
Отправить комментарий