Python 如何更改类';s类属性';默认值
我有一个带有类属性策略的类测试,它有两个int属性short\u window=10,long\u window=40Python 如何更改类';s类属性';默认值,python,class,Python,Class,我有一个带有类属性策略的类测试,它有两个int属性short\u window=10,long\u window=40 class test(object): def __init__(self, symbol,strategy ): """ Parameters: symbol - The list strings. strategy - (Class). ""
class test(object):
def __init__(self, symbol,strategy ):
"""
Parameters:
symbol - The list strings.
strategy - (Class).
"""
self.symbol = symbol
self.strategy_cls = strategy
self._generate_instances()
def _generate_instances(self):
self.strategy = self.strategy_cls(self.data)
class Strategy(Object):
def __init__(self, data,short_window=100, long_window=400):
"""
Initialises the Moving Average Cross Strategy.
Parameters:
short_window - The short moving average lookback.
long_window - The long moving average lookback.
"""
self.data = data
self.short_window = short_window
self.long_window = long_window
我想给循环中的两个属性值赋予新值,但我不知道如何更改这些值。下面的代码似乎不起作用。请帮帮我
a_test = test(symbol,strategy(data, 2,3 ))
由于类用作创建实例的函数,因此可以使用lambda
a_test = test(symbol, lambda data: Strategy(data, 2, 3))
strategy
应该是strategy
。test
为什么选择一个类而不是该类的实例?是的,strategy应该是Strategyl。我的坏@user2357112支持Monica,好问题,实际上因为数据是另一个类,我认为类提供了更多的灵活性