2017-05-15 6 views
1
def foo(): 
    pass 

関数はそう、呼び出し可能オブジェクトです:声明(機能であるfooで)falseを返す "fooが呼び出し可能である"

callable(foo) # return "True" 

しかし

foo is callable # return "False" 

ので、foo is callablecallable手段?

+1

'foo is callable'は' fooで呼び出し可能な同じ関数オブジェクトですか? 'を意味しますが、それらは異なる関数です。 – ozgur

+0

Hrm。私は、 '' isinstance(foo、Foo) 'とは対照的に' 'foo''が真実になることを期待している人たちに、これと似た疑問の重複をマークすることは妥当かどうか、ほとんど疑問に思います。 )。 –

+0

@CharlesDuffyあなたはリンクを提供できますか? – jonrsharpe

答えて

3

callableは、その引数が呼び出されるかどうかをテストする関数です。関数であるか、__call__メソッドを持つオブジェクトであるためです。

foo is callablefoocallableが同じオブジェクトでない場合は、テストします。

+1

Pythonで自然言語を使用できないことを人々はいつ理解していますか? :) –

関連する問題