class A:
def foo(self):
print "foo()"
getattr(A, foo) # True
A.foo() # error
getattr(A(), foo) # True
A().foo() # prints "foo()"
话虽如此,这是我的问题:
我希望将测试用例元信息存储为测试用例类对象本身的属性,而不是它们的实例。
我有一个要提取的属性名称列表,但是如果有同名的实例方法,getattr(class_obj, attr)
则将返回 True,但getattr(class_obj, attr)()
会引发错误。
有没有办法告诉 getattr 不包含实例化类的属性而只包含类对象本身的属性?
编辑:我尝试class_obj.__dict__
直接访问(我理解这是不好的做法),但它不包括一些属性,如__name__
编辑:改写问题。有没有办法区分 obj 类的方法和类实例的方法?