Pythonでは、クラスの属性がインスタンスメソッドかどうかを効率的かつ包括的にテストする必要があります。呼び出しの入力は、チェックされる属性の名前(文字列)とオブジェクトになります。クラス属性がインスタンスメソッドかどうかをテストする方法
hasattrは、属性がインスタンスメソッドであるかどうかにかかわらず、trueを返します。
提案がありますか?属性は属性であればチェックを存在して、場合
class A(object):
def method_name(self):
pass
import inspect
print inspect.ismethod(getattr(A, 'method_name')) # prints True
a = A()
print inspect.ismethod(getattr(a, 'method_name')) # prints True
本当に知っておく必要がありますか?あなたはそれを呼び出すことができるかどうか知りたいのは本当にかわいいですか?それらは必ずしも同じものではありません(当然ですが)。 –
ソースの読み方に問題がありますか?これはPythonです - あなたはソースを持っています - なぜあなたは単にそれを読むことができませんか? –
ソースを読んでも助けにならないでしょう - おそらく彼は実行時に答えを知る必要があるいくつかのコードを書いているでしょう。おそらくオブジェクトのすべてのattrsを反復処理します。 –