Как изменить переменную из метода в классе?
Подскажите как можно изменить переменные в "init" из метода "update_A", в чем ошибка? Заранее спасибо за ответ!
class A(object):
def __init__(self):
self.name = 'Boris'
self.age = 12
def update_A(self):
self.name = 'Ivan'
self.age = 30
X = A().update_A
print(X.name(), X.age())
Ответы (2 шт):
Автор решения: DGDays
→ Ссылка
Ну, все методы вызываются с помощью (). То есть, ваш вызов должен быть:
X = A().update_A()
Это должно сработать.
И добавьте ещё return self в конце метода, иначе не будет работать в одну строку и придётся делать так:
X = A()
X.update_A()
Автор решения: Danis
→ Ссылка
вам надо вызвать update_A. У вас self.name и self.age это не методы поэтому надо убрать круглые скобки
class A(object):
def __init__(self):
self.name = 'Boris'
self.age = 12
def update_A(self):
self.name = 'Ivan'
self.age = 30
X = A()
X.update_A()
print(X.name, X.age)
а если хотите чтобы работало в одну строку то надо добавить return self в конец метода update_A
class A(object):
def __init__(self):
self.name = 'Boris'
self.age = 12
def update_A(self):
self.name = 'Ivan'
self.age = 30
return self
X = A().update_A()
print(X.name, X.age)