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

如何在类的test函数内部操作deriv_position列表实现添加、清空功能

错误原因
  • 代码抛出NameError: name 'deriv_position' is not defined的核心原因:类属性无法在类内部的方法中直接被调用,必须显式指定属性所属的类/实例,才能正常访问。
  • 你当前的代码是在类定义阶段直接执行test(),不需要实例化类,直接通过类名访问类属性即可。
最优实现(适配你当前的调用逻辑)
class TestClass:
    deriv_position = []

    def test():
        # 显式通过类名调用类属性
        if len(TestClass.deriv_position) > 0:
            print("trade is open")
            TestClass.deriv_position.clear()
        else:
            print("trade is close")
            TestClass.deriv_position.append("1")

    test()    
规范拓展(需实例化调用的场景)

如果后续你需要实例化TestClass后再调用方法,更通用的实现方式是将方法定义为实例方法,通过self.__class__访问类属性,避免硬编码类名,后续修改类名时不需要同步修改属性调用代码:

class TestClass:
    deriv_position = []

    def test(self):
        if len(self.__class__.deriv_position) > 0:
            print("trade is open")
            self.__class__.deriv_position.clear()
        else:
            print("trade is close")
            self.__class__.deriv_position.append("1")

# 实例化后调用
obj = TestClass()
obj.test()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:27:05