Python中的callable()

一般来说,callable是可以被调用的东西。如果传递的对象看起来是可调用的,Python中的这个内置方法会检查并返回True,但可能不是,否则返回False。 语法:

null
callable(object)

callable()方法只接受一个参数和一个对象,并返回两个值中的一个:

  • 如果对象似乎可调用,则返回True。
  • 如果对象不可调用,则返回False。

注: callable()返回true的情况可能很少,但对object的调用失败。但如果case返回False,调用object将永远不会成功。

案例:当对象可调用时

# Python program to illustrate
# callable()
# a test function
def Geek():
return 5
# an object is created of Geek()
let = Geek
print ( callable (let))
# a test variable
num = 5 * 5
print ( callable (num))


输出:

True
False

说明:

  • 在这里,我们看到在第一种情况下,当在callable()方法中传递一个对象时,它返回True。这是因为 允许 是可调用函数的对象 笨蛋 (并非所有情况下都是如此)。
  • 在第二种情况下 号码 绝对不是可调用对象,因此结果为False。

内置的callable()方法检查参数是否为以下两个参数之一:

  • 具有 __打电话__ 方法
  • 是具有指示可调用性的类型,如在函数、方法等中,或具有非空的tp_调用(c struct)成员

例子:

# Python program to illustrate
# callable()
class Geek:
def __call__( self ):
print ( 'Hello GeeksforGeeks' )
# Suggests that the Geek class is callable
print ( callable (Geek))
# This proves that class is callable
GeekObject = Geek()
GeekObject()


输出:

True
Hello GeeksforGeeks

说明: 由于第一个案例返回并打印为True,这表明类Geek可能是可调用的。接下来,我们可以调用 __打电话__ 方法,从而证明该类是可调用的。

案例:当对象不可调用时

让我们看看这个例子中发生了什么:

# Python program to illustrate
# callable()
class Geek:
def testFunc( self ):
print ( 'Hello GeeksforGeeks' )
# Suggests that the Geek class is callable
print ( callable (Geek))
GeekObject = Geek()
# The object will be created but
# returns an error on calling
GeekObject()


输出:

True

说明: callable()方法返回True,表明Geek类是可调用的,但Geek的实例不可调用(),并返回运行时错误:

Traceback (most recent call last):
  File "/home/3979dc83032f2d29befe45b6ee6001a4.py", line 10, in 
    GeekObject()
TypeError: 'Geek' object is not callable

本文由 金莫伦卡 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享