Напишите класс Shared, экземпляры которого будут обладать следующими свойствами:
При выводе с помощью print() должно выводиться строка вида «|objects/live/total/local|, где objects — количество созданных за всё время экземпляров класса Shared (без учёта их удаления), live — количество актуальных экземпляров класса Shared, total — сколько всего операций «~» применялось к объектам класса Shared, а local — сколько операций «~» применялось к данному объекту
Операция ~объект должна возвращать число local (уже увеличенное на 1 ☺)
1 b, c = Shared(), Shared()
2 print(b, c, Shared())
3 print(~c, ~b, ~c)
4 print(b, c)
|3/3/0/0| |3/3/0/0| |3/3/0/0| 1 1 2 |3/2/3/1| |3/2/3/2|
Пояснение:
Заводим a, b
Заводим ещё один объект — всего три — вызываем print(); «~» не вызвана ни разу
- Безымянный объект удаляется — на него нет ссылок
Дважды вызываем «~» от c и единожды — от «b»