Pyrym
@Pyrym
Python 3 и PyQt5

Как в функции сослаться на переменную другой функции?

Python 3. PyQt4
Условная модель вопроса:
Есть функция "аа" с переменными. Я хочу в функции "bb" использовать эти переменные вот так:
def aa(self):
    x = 3
    y = 5
    z = 6
def bb(self):
    s = aa.x + 5
    print('s = ',aa.x,'+ 5 = ',s)
bb()

Обе функции принадлежат классу QWidget.
В реале мой вопрос выглядит так:
def on_kat(self):
        кат_index = self.listWidget_кат.currentRow() # принимает номер строки
        уч_lst = basa.кат[кат_index+1]
        self.listWidget_уч.clear()
        self.listWidget_уч.addItems(уч_lst)
        return кат_index 
def on_kat_minus(self, кат_index):
        кат_index = on_kat.кат_index
        print('кат_index = ',кат_index)

Т.е. во второй функции надо воспользоваться переменной из первой функции - кат_index
  • Вопрос задан
  • 3071 просмотр
Решения вопроса 1
@fireSparrow
В такой форме - никак.
Переменные, объявленные внутри функции, существуют только для этой функции и только на время её выполнения.

Соответственно, нужно либо объявление переменных вынести за пределы функции - в какое-то пространство имён, общее для обеих функций. Либо возвращать переменные в качестве результата функции, и вызывать эту функцию, чтобы получить её результат.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы