Получение возвращаемого значения из функции, переданной в finish.connect()

Я загружаю csv по таймеру, используя Pyqt5 QNetworkManager. Функция, которая вызывает это, принадлежит внешнему классу. Мне нужно, чтобы результат запроса возвращался как объект в исходной вызывающей функции. Тем не менее, единственный способ, которым мне удалось получить объект, был с помощью оператора finish.connect. Мне нужен вывод обратно в исходную функцию.

class Model():
    def __init__(self):
        ### These are my login credentials, pickled for safety 
        self.cred = pickle.load(open( "cred.p", "rb"))

    def Request(self): 
        self.cred = pickle.load(open( "cred.p", "rb"))
        url = 'https://obscuredforsafety.com'
        req = QtNetwork.QNetworkRequest(QtCore.QUrl(url))
        self.nam = QtNetwork.QNetworkAccessManager()
        self.nam.authenticationRequired.connect(self.authenticate)

        ### This function actually works, but I cannot get the return value back into this scope
        ret = self.nam.finished.connect(self.handleResponse)
        self.nam.get(req)
        ### All I need is to return this self.df object so I can send it back to my calling class
        try:
            ### This is where I need my response object to return ###
            print(self.df)
        except:
            pass

    ### This part works well         
    def authenticate(self, reply, auth):
        auth.setUser(self.cred[0])
        auth.setPassword(self.cred[1])
    
    ### Handles the response and builds the dataframe properly
    ### How can I get this self.DF back into the original function so I can return it
    
    def handleResponse(self, reply):
        er = reply.error()
        if er == QtNetwork.QNetworkReply.NoError:
            bytes_string = str(reply.readAll(), 'utf-8')
            csv = StringIO(bytes_string)
            self.df = pd.read_csv(csv, sep = ',')


        else:
            print("Error occured: ", er)
            print(reply.errorString())

person cdubbs    schedule 26.07.2021    source источник
comment
Qt является асинхронным, поэтому не ожидайте получения данных после выполнения запроса, если вы хотите, чтобы запрос был синхронным, не используйте Qt, а, например, запрашивайте библиотеку.   -  person eyllanesc    schedule 26.07.2021
comment
Верно. Мне просто нужно, чтобы возвращаемое значение (с любой скоростью, здесь необходима асинхронность) было передано обратно в исходную функцию.   -  person cdubbs    schedule 26.07.2021
comment
Это невозможно сделать, поэтому Qt не работает, поэтому есть сигналы, которые уведомляют, когда что-то происходит.   -  person eyllanesc    schedule 26.07.2021
comment
Не могли бы вы привести пример того, как я могу использовать слоты для извлечения этого объекта?   -  person cdubbs    schedule 26.07.2021
comment
См. stackoverflow.com/questions/64661397/   -  person eyllanesc    schedule 26.07.2021