Python callable() ビルトイン関数
オブジェクト引数が呼び出し可能(callable)であれば True を、そうでなければ False を返します。これが True を返す場合でも、呼び出しが失敗する可能性はありますが、False の場合は object を呼び出しても決して成功しません。クラスは呼び出し可能であること(クラスを呼び出すと新しいインスタンスが返されます)、インスタンスはクラスに __call__() メソッドがある場合に呼び出し可能であることに注意してください。
Introduction
Python において、callable() 関数は、オブジェクトが呼び出し可能であるかどうか(関数として呼び出すことができるかどうか)を判断するために使用できるビルトイン関数です。
これは、渡されたオブジェクトが呼び出し可能であれば True を、そうでなければ False を返します。例えば、関数、メソッド、クラス、ラムダ関数、ジェネレータはすべて Python において呼び出し可能なオブジェクトです。
callable() 関数の使用例を以下に示します。
def my_function():
pass
class MyClass:
def __call__(self):
pass
x = 5
y = my_function
z = MyClass()
a = lambda: None
print(callable(x))
print(callable(y))
print(callable(z))
print(callable(a))
False
True
True
True
上記の例では、my_function は関数であり呼び出し可能であり、MyClass はクラスであり __call__ メソッドを持っているため呼び出し可能です。z はクラス MyClass のインスタンスであり、__call__ メソッドを持っているため呼び出し可能です。また、a はラムダ関数であり呼び出し可能です。
callable() 関数は、コールバックやその他の種類の関数ポインタを扱う場合など、オブジェクトを関数として呼び出す必要がある状況で役立ちます。