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

基于实例变量值实现类方法(OOP)的问题与解决

OOP新手的Python方法分支问题

我是OOP新手,想创建包含依赖实例变量值的方法的对象,写了如下Python代码:

class cases:
    def __init__(self, a):
        self.a = a  

    def f1(self, x):
        return x

    def f2(self, x):
        return 100*x
        
    if self.a < 3:
        self.x = f1
    else:
        self.x = f2

创建实例c1 = cases(2)和c2 = cases(5)后,期望调用c1.x(10)返回10、c2.x(10)返回1000,但运行时出现NameError: name 'self' is not defined;把self.a改成a后,又出现NameError: name 'a' is not defined。请问如何访问实例变量进行分支判断?


解决方法(更新)

按照指导修改代码后,实现了预期效果:

def f1(x):
    return x

def f2(x):
    return 100*x

class case:
    def __init__(self, a):
        self.a = a
       
    def x(self, x):
        if self.a < 3:
            return f1(x)
        else:
            return f2(x)
          
# 创建不同实例
c1 = case(2)
c2 = case(4)

# 输出结果
print(c1.x(10))
print(c2.x(10))

运行结果符合预期。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 00:52:12