Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何更改类';s类属性';默认值_Python_Class - Fatal编程技术网

Python 如何更改类';s类属性';默认值

Python 如何更改类';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). ""

我有一个带有类属性策略的类测试,它有两个int属性short\u window=10,long\u window=40

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,好问题,实际上因为数据是另一个类,我认为类提供了更多的灵活性