我试图将数据附加到列表中,但在我添加新值之前,列表似乎已重置。这是相关代码:
这是主要模块:
def update():
global url
data.add_price(df.pulldata(url))
这是数据模块:
historical_price = []
def add_price(price):
historical_price.append(price)
print(historical_price)
我猜这个问题是我在顶部定义historical_price是空的。然而,这让我感到困惑,因为整个脚本永远不会运行。我该如何解决这个问题?提示很受欢迎。
答案 0 :(得分:0)
您永远不会实例化数据类,因此它在没有实例的情况下执行add_price
来执行它。您应该将self
作为参数添加到add_price
,并且您应该像这样实例化您的数据类。
d = data()
def update():
global url
d.add_price(df.pulldata(url))
您还应该使historical_price
成为数据类的属性,因此数据类看起来应该是这样的。
class data:
def __init__(self):
self.historical_price = []
def add_price(self, price):
self.historical_price.append(price)
print(self.historical_price)
答案 1 :(得分:0)
由于您的add_price
函数位于不同的模块中,因此每次调用该方法时都会运行此部分historical_price = []
。
调用全局函数首先执行所有全局代码,然后执行函数。
要解决此问题,您可以:
主代码是通过调用方法和实例化类来控制程序流的顶级代码。