Передать значение переменной из одной функции в другую

Есть две функции 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()
→ Ссылка