我想将我的时间序列数据与给定文件中的元数据进行匹配。
在我的代码中,主函数每 1 分钟调用一次“create_match()”函数。在“create_match()”内部,有一个“list_from_file()”函数可以从文件中读取数据并存储在列表中以执行匹配。
问题是我的代码无效,因为它每 1 分钟读取一次文件并在相同的列表中重写。我只想读取文件一次(只初始化列表一次),然后忽略“list_from_file()”函数。我不想只是将此任务移至主函数并通过函数传递列表。
python在c编程中是否有像静态变量这样的特殊变量?
Bre*_*bel 10
Python 没有静态变量声明;然而,python 中有几个相当标准的编程模式可以做类似的事情。最简单的方法是只使用全局变量。
定义一个全局变量并在运行初始化函数之前检查它。如果已经设置了全局变量(即您正在阅读的列表),只需返回它们。
CACHE = None
def function():
global CACHE
if CACHE is None:
CACHE = initialize_function()
return CACHE
Run Code Online (Sandbox Code Playgroud)
您可以使用一个类:
class Match (object):
def __init__(self):
self.data = list_from_file()
def create_match(self):
# do something with `self.data` here
Run Code Online (Sandbox Code Playgroud)
举个例子:
match = Match()
Run Code Online (Sandbox Code Playgroud)
这叫list_from_file().
现在,您可以create_match()重复调用并访问self.data
import time
for x in range(10):
match.create_match()
time.sleep(60)
Run Code Online (Sandbox Code Playgroud)