Python:返回值

Python:返回值,python,return,Python,Return,我有一个问题和下面给出的代码。这是script2调用script1并返回数据帧的正常场景。比如说,我有script3,4,5,它需要来自script1的dataframe1,每次我从其他脚本调用script1时,script1将在每次调用时执行。因此,是否有一种方法可以只调用一次script1,而其他脚本从script1中提取/获取dataframe1 script1() code... return dataframe1 script2() from script1 import * dat

我有一个问题和下面给出的代码。这是script2调用script1并返回数据帧的正常场景。比如说,我有script3,4,5,它需要来自script1的dataframe1,每次我从其他脚本调用script1时,script1将在每次调用时执行。因此,是否有一种方法可以只调用一次script1,而其他脚本从script1中提取/获取dataframe1

script1()
code...
return dataframe1

script2()
from script1 import *
dataframe = script1()

假设通过
scriptN
您指的是不同的模块,您可以让第一个模块缓存结果,并在后续调用中返回结果。大概是这样的:

# script1.py
_df = None

def get_dataframe()
    global _df
    if _df is None:
        _df = calculate_dataframe()
    return _df

def calculate_dataframe():
    # Generate dataframe here
    return the_dataframe
现在,您可以从其他模块中使用它,并且只会在第一次计算它:

# script2..N.py
from script1 import get_dataframe
df = get_dataframe()

这回答了你的问题吗?事实上,我每30秒从一个网站上获取一次数据。此网站数据的输出存储在dataframe中,dataframe是script1。我有脚本2和脚本3,它们需要来自脚本1的数据帧。因此,如果我从脚本2和脚本3依次调用脚本1,每次调用脚本1时,带有新值的数据帧都会返回到脚本2和脚本3。@DhayalamoorthiMani您的问题就更没有意义了;您是否希望它被多次调用?若你们能解释更多你们的实际代码,也许你们会理解的。嗨,让我简单地告诉你们:script1每30秒从网站上收集一次数据。我希望这个脚本1在一个无限循环中运行,这样每30秒,网站中的任何新数据都将被检索并存储在dataframe中。我有script2和Script3,这取决于script1的输出。所以,和以前一样,我从script1返回数据帧,它停止script1并将输出提供给script2和3。。。。所以我想要的是script1应该在一个无限循环中运行,scrip2&3应该来获取script1的输出。因此,理想情况下,script1不会有任何返回语句。。请解释thanks@DhayalamoorthiMani您需要在单独的线程或进程上运行
script1
,以使其正常工作,并构建某种消息传递或生产者/消费者机制。这远远超出了这个问题的范围;我先读一下多线程技术。