python只调用函数运行的结果,而不重复调用函数

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
import pandas as pd
import os
import pyautogui
import time
#查找未下载的文件名
def find_undownloadcode():
    # 1.利用OS库遍历文件夹所有的文件名
    downloaded_filenames = os.listdir("F:\\gupiaoziliao\\managerstock\\")
    # 2.读取excel所有的股票代码
    pd1 = pd.DataFrame(pd.read_excel("F:\\gupiaoziliao\\沪深A股.xlsx"))
    all_stockcodes = list(pd1['证券代码'])
    # 3.删除已下载的文件名
    i = 0
    while i < len(all_stockcodes):
        if all_stockcodes[i] in downloaded_filenames:
            del all_stockcodes[i]
            i -= 1
        i += 1
    return all_stockcodes
undownload_codes = find_undownloadcode()
我能想到的解答思路

我能想到的是先将函数运行结果存入到excel,用的时候直接从excel中调用,但是感觉有点麻烦,不知道有没有其他的方法,不用把数据导出,就能达到这种效果的

我想要达到的结果

利用上述代码,得出未下载的代码,后面一直调用undownload_codes列表里面的数据即可,而不用重复运行find_undownloadcode函数

运行结果不是在all_stockcodes里吗,不是return回来了吗,你放内存里放着就行,为什么要存excel?
你就搞个全局变量来接函数的返回值,里面存的不就是all_stockcodes了吗
一定是全局变量,不要局部变量,否则函数执行完变量释放了你又找不到这个值了
总之变量不释放这个值就一直在,不用存来存去的

如果是本次运行过程中,其他地方需要使用undownload_codes 列表数据,是可以直接使用的。

如果是想多次运行,使用undownload_codes 列表内容的话,就可以
把undownload_codes 列表内容存文件中,每次运行前先读取文件中的列表数据,如果不存在数据,再调用find_undownloadcode方法获取数据。

现在你的代码已经得到了undownload_codes,他就已经保存在内存中了。后续用的话只需要用undownload_codes就行了,比如print(undownload_codes) 这样是不会再去调用函数的,只会读出保存在内存中的函数的返回结果

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632