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

能否在类B中调用其属性类A实例的submethod以打印B的所有属性?

问题解答:调用类方法打印另一类实例属性是否可行?

你的代码是可行的。当执行classBInstance.submethod()时,B的submethod会调用A实例的submethod,并把B自身的实例对象传进去。A的submethod里的dir(argumentThatWillBeAClass)会打印出该B实例的所有属性和方法,包括从object类继承来的内置属性(比如__init__、__str__这类)。

举个实际运行的例子,执行你的代码后调用classBInstance.submethod(),输出里会包含classAInstance、submethod以及一堆双下划线开头的内置属性。

如果你的需求是只打印B实例自定义的属性(排除内置属性),可以修改A的submethod,过滤掉以双下划线__开头的属性,代码如下:

class A:
    def __init__(self, argument):
        self.value = argument

    def submethod(self, instance):
        # 筛选出非内置的自定义属性
        custom_attributes = [attr for attr in dir(instance) if not attr.startswith('__')]
        print(custom_attributes)

修改后再调用classBInstance.submethod(),输出就会是['classAInstance', 'submethod'],更贴合你想要的“B的所有属性”的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:10:51