Как вернуть экземпляр для использования атрибута класса вместо атрибута теневого экземпляра? - PullRequest
0 голосов
/ 13 апреля 2020

Если у меня есть класс и два его экземпляра:

class Foo:
    var = 1

a = Foo()
b = Foo()

Оба атрибута var экземпляров отражают значение, которое я задам для Foo:

Foo.var = 2
print(a.var)  # 2
print(b.var)  # 2

Но когда я тогда установил var только для a, a.var больше не "синхронно" c "с Foo.var:

a.var = 3
Foo.var = 4
print(a.var)  # 3
print(b.var)  # 4

Можно ли как-нибудь" вернуться «this без создания нового экземпляра , чтобы a.var снова отражал значение Foo.var?

Очевидная попытка (очевидно) не работает, поскольку целые числа не ссылки:

a.var = Foo.var
print(a.var)  # 4
Foo.var = 5
print(a.var)  # 5

1 Ответ

0 голосов
/ 13 апреля 2020

Атрибут экземпляра можно просто удалить, и тогда a снова будет использовать var, определенный в Foo:

del a.var
Foo.var = 6
print(a.var)  # 6
...