在python中查找函数的类名



我的代码中有多个类。我可以从输入中提取函数名。但是要执行这个函数,我需要知道这个函数属于哪个类。有没有办法找到这个函数的类名(从类列表中)?

我试过isinstance,但它不会给出类名。我也尝试了__class__.name,但是它在我们之前声明它之后给出了类名。还有别的办法吗?

不确定这是否是您需要的,但您可以在类上调用.__dict__,然后检查您的函数名称是否作为返回字典中的键存在。

class B:
def foo(self):pass
B.__dict__
mappingproxy({'__module__': '__main__', 'foo': <function B.foo at 0x7f4861baee80>, '__dict__': <attribute '__dict__' of 'B' objects>, '__weakref__': <attribute '__weakref__' of 'B' objects>, '__doc__': None})

但从描述来看,似乎您有多个@classmethod,这最常用于声明自定义初始化器(有时被错误地称为"构造器"),否则可能会摆脱类,只是声明"正常";功能。

最新更新