我有一个函数(get\u score),它使用同一类中其他函数(self.\u sma)的变量。你知道吗
我的问题是:如何从get\u score函数访问这些变量?(错误:未定义全局名称)。你知道吗
另外,我听说使用全局变量会引起一场混乱(仅根据我在这里读到的内容)。提前谢谢。你知道吗
下面是一些代码:
testlist = ['TREE', 'HAPPY']
Class MyStrategy(strategy.BacktestingStrategy):
def __init__(self, feed, instrument):
super(MyStrategy, self).__init__(feed, 1000)
self.__position = [] #None
self.__instrument = instrument
self.setUseAdjustedValues(True)
self.__prices = feed[instrument].getPriceDataSeries()
self.__sma = ma.SMA(feed[instrument].getPriceDataSeries(), smaPeriod)
def get_score(self,banana)
fruit_lover= self.__sma
return fruit_lover + banana
def onBars(self, bars):
for x in bars.getInstruments():
list_large = {}
for y in testlist:
list_large.update({y : self.get_score(5)})
一份脚本,一堆存根,还有太多的语法修正:
我得到以下结果:
在其他方法中访问
__sma
属性没有问题。你知道吗因为名称以
__
开头(而不是以__
结尾),所以它被编码为“伪私有”变量,如vars
显示中所示。但这并不妨碍从另一个方法访问。你知道吗对于初学者,我建议跳过这个特性,只使用
self.sma
这样的名称。代码将更容易调试。你知道吗确保您了解我的更改;并运行一些类似的测试。你知道吗
相关问题 更多 >
编程相关推荐