Как увеличить значение атрибута класса, при каждом новом вызове объекта класса

Имеется класс:

class Server:
    ip = 1

Как можно увеличить значение атрибута класса при каждом новом вызове объекта класса, на единицу?

sv_from = Server()
sv_from2 = Server()

Например создаю первый объект класса, у него ip == 1, а вот второй объект класса должен увеличить ip на единицу


Ответы (1 шт):

Автор решения: n1tr0xs

Обычно это делают в методе __init__:

class Server:
    ip = 1
    
    def __init__(self):
        self.ip = Server.ip # важно сначала присвоить текущее...
        Server.ip += 1 # ...а потом уже увеличивать идентификатор

sv_from = Server()
sv_from2 = Server()

print(sv_from.ip)
print(sv_from2.ip)

Вывод:

1
2
→ Ссылка