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 のメソッドとクラスのインスタンスのメソッドを区別する方法はありますか?