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

如何通过变量名打印类实例中已存在的变量?

问题解决

错误原因

  • 调用m.d('john')触发AttributeError:方法d里写了print(self.x),但self(实例对象)并没有x这个属性,参数x是传入的字符串'john',并非实例的属性。
  • 调用m.d(john)触发NameError:john未被定义为变量,直接引用会导致未定义错误。

修改方案

根据不同需求,有两种常见修改方式:

方式一:传入属性名字符串,打印对应实例属性值

如果想通过传入'john'这类属性名字符串,打印实例的self.john属性值,可使用getattr()方法动态获取实例属性:

class abc():
    def __init__(self):
        self.john = 'a'
        self.mike = 'b'

    def d(self, x):
        # 动态获取实例的对应属性并打印
        print(getattr(self, x))

m = abc()
m.d('john')  # 输出: a

方式二:直接传入要打印的值

如果想直接传递要打印的内容,修改方法d直接打印参数x,调用时传入实例属性或具体值即可:

class abc():
    def __init__(self):
        self.john = 'a'
        self.mike = 'b'

    def d(self, x):
        print(x)

m = abc()
m.d(m.john)  # 输出: a
m.d('b')     # 输出: b

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:27:26