Передать значение переменной из одной функции в другую
Есть две функции func1 и func2. В func1 происходит определение нескольких переменных и присвоение им значений. Функция func2 должна работать с одной из переменных функции func1. Такой код не работает.
class C(object):
def func1(self):
a = "test"
b = "test2"
def func2(self):
if a == "test":
print(a)
d = C()
d.func1()
d.func2()
Вкладывать func2 в func1 нельзя. Но, если сделать переменную а глобальной, то все прекрасно работает.
class C(object):
def func1(self):
global a
a = "test"
b = "test2"
def func2(self):
if a == "test":
print(a)
d = C()
d.func1()
d.func2()
Делать переммые глобальными - это неправильно, не так ли? Как передать значение переменной из одной фукции в другую, не делая её глобальной?
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Используйте поля класса, они для этого вполне подходят. К ним можно обращаться через self.:
class C(object):
def func1(self):
self.a = "test"
self.b = "test2"
def func2(self):
if self.a == "test":
print(self.a)
d = C()
d.func1()
d.func2()