Дан класс:
class Player: score = 0 # атрибут в теле класса, не в __init__ def add_points(self, pts): self.score += pts p1 = Player() p2 = Player() p1.add_points(10) print(Player.score, p1.score, p2.score)
Что выведет этот код?
0 10 0 — self.score += pts создаёт атрибут экземпляра у p1, атрибут класса и p2.score остаются 0
0 10 0
self.score += pts
p1
p2.score
0
10 10 10 — score является атрибутом класса, поэтому изменение через self затрагивает всех
10 10 10
score
self
0 10 10 — p1 и p2 разделяют атрибут score, поэтому оба показывают обновлённое значение
0 10 10
p2
AttributeError — оператор += запрещён при обращении к атрибуту класса через self
AttributeError
+=