Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
class Counter:
def __init__(self):
self.value = 0
def add(self, n):
self.value += n
a = Counter()
b = Counter()
a.add(5)
print(a.value, b.value)5 0
- Ждать
5 5, будто оба объекта делят одноvalue: каждый вызовCounter()запускает__init__для нового экземпляра, иself.valueпринадлежит только ему. - Ждать
TypeError, раз уaddдва параметра, а передан один аргумент: экземпляр Python сам передаёт вself, поэтомуa.add(5)заполняет оба.
- Что напечатает
print(a.value, b.value)послеb.add(2)? - Как
selfвнутриaddузнаёт, какой объект менять?