Python callable内置函数原理解析


Posted in Python onMarch 05, 2020

python内置函数 callable用于检查一个对象是否是可调用的,如果函数返回True,object 仍然可能调用失败;但如果返回 False,调用对象 object 绝对不会成功。

一.callable函数简介

语法如下:

callable(object)

参数介绍:

object : 调用的对象;

返回值:返回bool值,如果object对象可以被调用返回true,不能被调用返回false;

值得注意的是:即便函数返回true,object也有可能调用失败,返回false意味着觉得不会成功!

对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。

二.callable函数使用

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com
 
@File:python_len.py
@Time:2020/2/24 21:25
 
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""
def test(func):
  # 判断func如果是函数,就执行他,如果不是函数,直接返回
  # 判断func是否可调用,如果可以调用,就是true
  if callable(func):
    print("函数可以被调用")
    return func
  else:
    print("函数不可以被调用")
def test2():
  return 'shuopython.com'
if __name__ == "__main__":
 
  print(test(test2())) #等价 test(str)   字符串不是对象
  print("***"*20)
  print(test(test2))  #等价 test(func)  函数是对象
  print("***"*20)
  print(test(123))   #等价 test(int)   整形不是对象

输出结果:

函数不可以被调用
None
************************************************************
函数可以被调用
<function test2 at 0x00000252F39D57B8>
************************************************************
函数不可以被调用
None

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python调用cmd命令行制作刷博器
Jan 13 Python
Python迭代用法实例教程
Sep 08 Python
Python2.x中文乱码问题解决方法
Jun 02 Python
基于python yield机制的异步操作同步化编程模型
Mar 18 Python
Python Requests安装与简单运用
Apr 07 Python
Python统计单词出现的次数
Apr 04 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
Python使用Tkinter实现滚动抽奖器效果
Jan 06 Python
python next()和iter()函数原理解析
Feb 07 Python
详解python中的闭包
Sep 07 Python
如何基于pandas读取csv后合并两个股票
Sep 25 Python
利用python绘制正态分布曲线
Jan 04 Python
python实现图像拼接
Mar 05 #Python
Python求两个字符串最长公共子序列代码实例
Mar 05 #Python
Python操作MongoDb数据库流程详解
Mar 05 #Python
Python文字截图识别OCR工具实例解析
Mar 05 #Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 #Python
python+OpenCV实现图像拼接
Mar 05 #Python
windows下Pycharm安装opencv的多种方法
Mar 05 #Python
You might like
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
php轻松实现中英文混排字符串截取
2014/05/28 PHP
php去掉文件前几行的方法
2015/07/29 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
jquery表格内容筛选实现思路及代码
2013/04/16 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
2015/09/16 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
js实现股票实时刷新数据案例
2017/05/14 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
对python中的argv和argc使用详解
2018/12/15 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
高中历史教学反思
2014/02/08 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
2016年暑假学生家长评语
2015/12/01 职场文书