You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改类实例属性后,如何获取类中fitness函数的更新计算结果?

解决Python类中属性修改后动态更新计算值的问题

你当前的代码里,fitness是在类初始化时就计算好的固定值,后续修改x不会触发它重新计算,所以打印出来还是初始化时的10,不是修改后的12。

最简单的解决方式是用@property装饰器,把fitness定义成动态属性,每次访问时都会基于当前最新的x值重新计算:

class ready:
    def __init__(self, x):
        self.x = x
    
    @property
    def fitness(self):
        return fit(self.x)

def fit(z):
    return z

p = ready(10)   
p.x = 12
print(p.fitness)  # 输出12

这样每次访问p.fitness时,都会自动调用对应的方法,用当前的self.x去执行fit函数,自然就能得到更新后的结果。

如果不想用@property,也可以把fitness改成一个方法,每次调用p.fitness()来获取最新值,但@property的方式更符合属性的使用习惯。

内容的提问来源于stack exchange,提问作者ELLA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 14:24:29