我的代码中有多个类。我可以从输入中提取函数名。但是要执行这个函数,我需要知道这个函数属于哪个类。有没有办法找到这个函数的类名(从类列表中)?
我试过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
,这最常用于声明自定义初始化器(有时被错误地称为"构造器"),否则可能会摆脱类,只是声明"正常";功能。