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

Python3.5中如何访问driving_style方法变量并在testing类中使用

实现方案

你需要获取driving_style运行时的中间变量DriveDays、StopBy,可选择以下两种实现方式:

方案1:修改driving_style返回值(兼容性最好,改动最小)

调整driving_style的返回结构,将中间变量和原有返回值一起返回,原有调用逻辑仅需微调即可兼容,示例代码如下:

调整后的driving_style代码

def driving_style(date, modelDays, params):
    daystrade = params.daystrade
    high_low = params.high_low
    
    DriveDays =  model.DateRange(date, params.daystrade)
    StopBy = ComputeData.instability(DriveDays)
    
    if high_low:
        style = ma.average(StopBy)
    else:
        style = ma.mean(StopBy)
    
    # 原返回值放第一位,后续追加需要对外暴露的中间变量
    return style, DriveDays, StopBy

原有Volume类调用适配

仅需在调用时取第一个返回值,不影响原有业务逻辑:

def learning(self, data, rootClass):
    params.daystrade = self.daystrade
    params.high_low = self.high_low
    # 按参数定义传入对应入参,只取第一个返回值忽略中间变量
    style, _, _ = Accuracy.driving_style(date, modelDays, params)
    return self.Object(data.universe, style)

test_score方法实现

直接调用driving_style取中间变量即可:

def test_score(date, modelDays, params):
    # 调用driving_style获取中间变量,忽略原有style返回值
    _, DriveDays, StopBy = driving_style(date, modelDays, params)
    # 此处补充你自己的运算逻辑
    test_score_result = 自定义运算逻辑(DriveDays, StopBy)
    return test_score_result

方案2:抽离公共计算逻辑(适合不想修改原有方法返回结构的场景)

把计算DriveDays、StopBy的逻辑抽成独立公共函数,driving_style和test_score都调用该函数获取变量,无需修改原有driving_style的返回结构:

# 抽离的公共计算函数
def calc_drive_base_params(date, params):
    DriveDays = model.DateRange(date, params.daystrade)
    StopBy = ComputeData.instability(DriveDays)
    return DriveDays, StopBy

# 原有driving_style逻辑基本不变,仅替换变量获取部分
def driving_style(date, modelDays, params):
    daystrade = params.daystrade
    high_low = params.high_low
    
    DriveDays, StopBy = calc_drive_base_params(date, params)
    
    if high_low:
        style = ma.average(StopBy)
    else:
        style = ma.mean(StopBy)
    
    return style

# test_score直接调用公共函数获取中间变量
def test_score(date, modelDays, params):
    DriveDays, StopBy = calc_drive_base_params(date, params)
    # 此处补充你自己的运算逻辑
    test_score_result = 自定义运算逻辑(DriveDays, StopBy)
    return test_score_result

注意事项

你原有代码存在几处疏漏,调整时需要一并修复:

  • BaseClass的__init__方法中直接调用了self.B.log,但self.B没有定义赋值
  • 调用driving_style、test_score方法时需要按参数定义传入date、modelDays、params三个入参
  • params变量在Volume类的learning方法中没有定义,需要补充初始化逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:18:05