Вы уже успешно добавляете / модифицируете экземпляр класса. А именно, __init__
принимает некоторые значения a
, а добавляет в качестве атрибута .a
к экземпляру self
. Использование одного и того же имени для переменной и атрибута является случайным - вы также можете использовать разные имена:
class Bla:
def __init__(self, b):
self.a = b # add `b` as attribute `a`
После добавления атрибута в экземпляр этот атрибут по умолчанию можно свободно читать и переопределять. Это относится к начальному методу, другим методам и любым другим функциям / методам, имеющим доступ к экземпляру.
class Bla:
def __init__(self, b):
self.a = b # add `b` as attribute `a`
def lol(self, c):
self.a = c # add `c` as attribute `a` (discarding previous values)
def rofl(self, d):
self.a += d # re-assign `self.a + d` as attribute `a`
# external function modifying `Bla` instance
def jk(bla, e):
bla.a = e # add `e` as attribute `a` (discarding previous values)