鉴于课程:
class MyClass:
def __init__(self):
self.log = []
return
def fitness(self, x):
return x*x
我希望能够将log
属性存储到fitness
方法的每个调用的输出中。为了得到以下内容:
my_obj = MyClass()
my_obj.fitness(3)
# Expected output 9
my_obj.fitness(6)
# Expected output 36
my_obj.log
# Expected output [9, 36]
我在考虑一个方法装饰器,但我不知道如何将该属性作为参数传递。我需要将log属性嵌入到类中而不是外部变量中。 我正在使用python 3。
答案 0 :(得分:1)
您不需要装饰器,只需编辑fitness
方法即可修改对象log
变量:
class MyClass:
def __init__(self):
self.log = []
return
def fitness(self, x):
self.log.append(x*x)
return x*x
答案 1 :(得分:0)
您需要做的是使用fitness方法直接修改log属性:
def fitness(self, x):
self.log.append(x*x)