JaychouV5 发表于 2021-4-29 08:38

关于Python 知道方法怎么获取类的问题

本帖最后由 JaychouV5 于 2021-4-29 08:40 编辑

比如
class AAA(object):
    ......
    def a():
      .......

class BBB(object):
    ......
    def a():
      .......

现在我通过监控可以得到event = AAA.a() 或者BBB.a()
那么我该怎么判断.a()前面的类是AAA还是BBB呢?

实际场景就是pyqt中对多个文本框的双击事件过滤

麦子1995 发表于 2021-4-29 08:46

gentlespider 发表于 2021-4-29 15:19

isinstance 或者 type判断

Cool_Breeze 发表于 2021-4-29 16:07

isinstance(a, AAA)
True
a = BBB()
isinstance(a,AAA)
False

DevenVan 发表于 2021-4-30 23:28

这里把函数放到类里面,只是为了满足封装特性,或者是使用类特性,并不是类的实例,所以instance和type是没有用的
不嫌麻烦,可以用万能的 getattr 逐一遍历判断


也可以用另一个魔法字段 __qualname__ 获取

JaychouV5 发表于 2021-5-4 23:20

DevenVan 发表于 2021-4-30 23:28
这里把函数放到类里面,只是为了满足封装特性,或者是使用类特性,并不是类的实例,所以instance和type是没 ...

不是这个意思,有没有f1.xxx()这样的方法能返回A对象呢?
页: [1]
查看完整版本: 关于Python 知道方法怎么获取类的问题