Python内置函数 - callable()

什么是callable

callable的对象是指:可被调用执行的对象,并且可以传入参数。

换句话说:只要可以在一个对象的后面使用小括号来执行代码,那么这个对象就是callable对象。

callable的作用

callable(object)

  • 如果参数object是不可调用的就返回False,否则返回True
  • 如果返回 False,调用object将肯定不会成功;但如果返回True,调用object却不一定成功。
  • callable的对象(object)种类包括:
    • 函数
    • 类(注意:调用类本质上返回的是一个实例)
    • 类内方法(即:类里面定义的函数)
    • 实现了内置方法__call__的对象(即:该对象所属的类定义了__call__方法)

callable的对象

  • 函数
    def test():
    	print('ok')
    
    print(callable(test))   # True
    test()  # ok
    
  • class Stu(object):
    def __init__(self, name):
        self.name = name
    
    print(callable(Stu))     # True
    print(Stu('小明').name)   # 小明
    # 调用类 "Stu('小明')" 返回的是实例 stu = Stu('小明')
    
  • 类内方法
    class Stu(object):
    def __init__(self, name):
        self.name = name
    
    def run(self):
        print('{name} is running'.format(name=self.name))
    
    print(callable(Stu.run))  # True
    Stu("小明").run()  # 本质上是先实例化,后调用实例的方法
    
  • 实现了内置方法__call__的对象
    class Stu(object):
    
    def __init__(self, name):
        self.name = name
    
    def __call__(self, *args, **kwargs):
        self.run()
    
    def run(self):
        print('{name} is running'.format(name=self.name))
    
    stu = Stu('小明')
    print(callable(stu))  # True
    stu()  # 小明 is running
    # 区别与“类内方法”中是“实例.方法()”;这里用的是“实例()”
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值