
Python类方法的所属类:如何确定?
在Python编程中,我们经常用到类方法(classmethod)。有时,我们需要确认某个类方法究竟属于哪个类。直接使用__class__属性无法达到目的,因为它只返回方法本身的类型,而非所属类。本文将介绍如何利用__qualname__属性解决这个问题。
举例说明:
假设有如下代码:
立即学习“Python免费学习笔记(深入)”;
from loguru import logger
class MyClass:
def my_method(self):
pass
method_ref = MyClass.my_method
logger.debug(method_ref.__class__)
运行后,logger.debug(method_ref.__class__) 将输出 ,表明method_ref是一个函数对象,这并非我们想要的结果。我们需要知道my_method方法的所属类。
解决方案:使用__qualname__属性
__qualname__属性返回一个字符串,表示对象的限定名称,包含类名和方法名。修改代码如下:
logger.debug(method_ref.__qualname__)
运行后,输出结果将是'MyClass.my_method',明确显示my_method方法属于MyClass类。 通过__qualname__属性,我们可以准确识别类方法所属的类。










