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

Python:如何从函数中获取实例所属的类名?

解决方法

__qualname__ 属性是方法定义时的限定名称,它绑定在方法对象本身,和调用该方法的实例所属类无关。要获取实例化类对应的方法限定名,需要结合实例的类信息与方法名来构造。

直接构造结果

通过实例的 type() 获取所属类名,再拼接方法的 __name__ 即可得到目标结果:

class A:
    def f(self):
        return 'I am f()'

class B(A):
    def g(self):
        return 'I am g()'

a = A()
b = B()

# 构造期望的限定名
print(f"{type(a).__name__}.{a.f.__name__}")
print(f"{type(b).__name__}.{b.f.__name__}")
print(f"{type(b).__name__}.{b.g.__name__}")

输出结果:

A.f
B.f
B.g

封装成通用函数

如果需要多次使用这类逻辑,可以封装成函数处理绑定方法:

def get_instance_method_qualname(bound_method):
    # 获取方法绑定的实例
    instance = bound_method.__self__
    # 拼接实例类名与方法名
    return f"{type(instance).__name__}.{bound_method.__name__}"

# 调用示例
print(get_instance_method_qualname(a.f))
print(get_instance_method_qualname(b.f))
print(get_instance_method_qualname(b.g))

输出结果同样符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:11:12