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

Мне нужно использовать переменную одной функции в другой функции, как я должен перестроить синтаксис, чтобы получить верное выражение?

введите сюда описание изображения

import sys
from PyQt5 import QtWidgets, uic
from pyqtgraph import PlotWidget, plot
import pyqtgraph as pg
import functions as fn
import numpy as np
import pandas as pd

class MainWindow(QtWidgets.QMainWindow):
    h = 1.055 * (10 ** (-34))  # Планка, Джоули
    m = 9.1 * (pow(10, -31))  # Масса электрона, кг
    pi = 3.14  # Число ПИ
    index = [1, 2, 3, 4, 5]

    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)

        # Загрузите страницу интерфейса
        uic.loadUi('ain.ui', self)
        #A=self.lineEdit.text()
        self.EnergyHistogram()
        #self.plotBarChart()
        self.pushButton.clicked.connect(self.EnergyTable)




    # мы добавили метод plot(), который принимает два массива:
    # temperature и hour, затем строит данные с помощью метода graphWidget.plot().

    def plot(self):
        #grid = QtWidgets.QGridLayout(self.graphWidget)
        #grid.addWidget(self.graphWidget, 0, 0)
        #self.graphWidget.plot(a,b=2)
        pass
    def check(self):
        A = self.lineEdit.text()

    def EnergyTable(self):
        n = 5
        i = 0
        E = np.arange(n, dtype=float)
        A = int(self.lineEdit.text()) * pow(10, -9)
        for i in range(n):
            E[i] = (pow(self.pi, 2) * pow(self.h, 2) * pow(i + 1, 2)) / (2 * self.m * pow(A, 2))
        E_J = EnergyTable()
        E_erg, E_ev = 0, 0
        E_erg = fn.ERG(E_J)
        E_eV = fn.eV(E_J)
        table = {'Дж': E_J, 'эрг': E_erg, '  эВ': E_eV}
        df = pd.DataFrame(table, index=self.index)
        df = str(df)
        self.label.setText(df)
        return E_J

    def EnergyHistogram(self):
        E_J=
        bg1 = pg.BarGraphItem(x=self.index, height=self.E_J, width=0.6, brush='r')

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    main = MainWindow()
    main.show()
    sys.exit(app.exec_())

Ответы (2 шт):

Автор решения: Denis640Kb

Чтобы получить значение функции, Вам необходимо её для начала вызвать.
Назначить переменной значение возвращаемой переменной.
И уже в дальнейшем её использовать.

def EnergyTable(self):
    n = 5
    i = 0
    E = np.arange(n, dtype=float)
    A = int(self.lineEdit.text()) * pow(10, -9)
    for i in range(n):
        E[i] = (pow(self.pi, 2) * pow(self.h, 2) * pow(i + 1, 2)) / (2 * self.m * pow(A, 2))
    E_J = E
    E_erg, E_ev = 0, 0
    E_erg = fn.ERG(E_J)
    E_eV = fn.eV(E_J)
    index = [1, 2, 3, 4, 5]
    table = {'Дж': E_J, 'эрг': E_erg, '  эВ': E_eV}
    df = pd.DataFrame(table, index=index)
    df = str(df)
    self.label.setText(df)
    return E_J

def EnergyHistogram(self):
    E_J = EnergyTable(param)
    bg1 = pg.BarGraphItem(x=self.index, height=E_J, width=0.6, brush='r')

Где param - это параметр который Вы передаёте в функцию EnergyTable.

→ Ссылка
Автор решения: Xander

Сложно говорить наверняка, не видя всего кода.

Но, кажется, можно просто заменить

return E_J

на

self.E_J = E_J
→ Ссылка