Как увеличить атрибут класса-счетчик?

Рейтинг: 0Ответов: 1Опубликовано: 11.02.2023

Есть класс который представляет из себя книгу контактов, у него есть атрибут current_id. Изначально это значение равно 0, но после добавления нового контакта (метод add_contact) это значение должно увеличиватся на единицу чтобы id был уникальным для каждого контакта. Если я вызываю его 2 раза, например, то счетчик обнуляется и начинается с единицы. Метод list_contacts возвращает список со всеми словарями(контактами)

class Contacts:
current_id = 1

def __init__(self):
    self.contacts = []

def list_contacts(self):
    print(self.contacts)
    return self.contacts

def add_contacts(self, name, phone, email, favorite):
    contact = {
        'id': self.current_id,
        'name': name,
        'phone': phone,
        'email': email,
        'favorite': favorite,
    }
    print(self.current_id)
    self.contacts.append(contact) 
    self.current_id += 1

Пример ввода и вывода:

1
2
[{'id': 1, 'name': 'Wylie Pope', 'phone': '(692) 802-2949', 'email': 'est@utquamvel.net', 'favorite': True}, {'id': 2, 'name': 'Cyrus Jackson', 'phone': '(501) 472-5218', 'email': 'nibh@semsempererat.com', 'favorite': False}]
1
2
[{'id': 1, 'name': 'Wylie Pope', 'phone': '(692) 802-2949', 'email': 'est@utquamvel.net', 'favorite': False}, {'id': 2, 'name': 'Cyrus Jackson', 'phone': '(501) 472-5218', 'email': 'nibh@semsempererat.com', 'favorite': False}]

Ответы

▲ 0Принят

Нужно заменить self.current_id += 1 на Contacts.current_id += 1