[英]How to catch the return value of function that is scheduled using python schedule package
[英]How to return values from a scheduled function in python?
我正在使用 Finnhub api 來獲取一些實時數據。 我有 2 個代碼,一個將每天登錄一次 api,第二個將每小時提供一次數據。
第一個函數將為第二個函數提供詳細信息,第二個函數將根據該函數獲取數據。
這是我的第一個函數
def finnhub_login():
finnhub_client = finnhub.Client(api_key="xxxxxxxxxxxx")
symbols = df['SYMBOLS'].to_list()
return symbols,finnhub_client
我想將輸出 ie 符號和 finnhub 客戶端用於第二個函數
這是第二個函數
def finnhub_api_call(symbols,finnhub_client):
main_value = 0
for i in symbols:
data = finnhub_client.quote(['symbol'])
main_value += data['dp']
return main_value
schedule.every(1).day.do(finnhub_login)
schedule.every(1).hour.do(finnhub_api_call,symbols,finnhub_client)
while True:
schedule.run_pending()
time.sleep(1)
在上面的代碼中,如何保存第一個函數的返回值,然后將其用於第二個函數?
您可以將所有這些包裝在一個類中並使用類變量。 您可以實例化您的類並使用那里的函數。 每次運行第一個函數時,類變量都會改變。 第二個函數將使用類變量而不是函數參數。
class FinnhubCaller:
def __init__(self):
pass
def finnhub_login(self):
self.client = finnhub.Client(api_key="xxxxxxxxxxxx")
self.symbols = df['SYMBOLS'].to_list()
def finnhub_api_call(self):
main_value = 0
for i in self.symbols:
data = self.client.quote(['symbol'])
main_value += data['dp']
return main_value
caller = FinnhubCaller()
schedule.every(1).day.do(caller.finnhub_login)
schedule.every(1).hour.do(caller.finnhub_api_call)
while True:
schedule.run_pending()
time.sleep(1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.