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 list格式数据excel导出方法
Oct 31 Python
在python下读取并展示raw格式的图片实例
Jan 24 Python
对python dataframe逻辑取值的方法详解
Jan 30 Python
pytorch 实现tensor与numpy数组转换
Dec 27 Python
pytorch之inception_v3的实现案例
Jan 06 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 Python
python实现一个猜拳游戏
Apr 05 Python
Python virtualenv虚拟环境实现过程解析
Apr 18 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
如何把python项目部署到linux服务器
Aug 26 Python
Python高阶函数与装饰器函数的深入讲解
Nov 10 Python
python opencv检测直线 cv2.HoughLinesP的实现
Jun 18 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
PHP模拟SQL Server的两个日期处理函数
2006/10/09 PHP
mysql 搜索之简单应用
2007/04/27 PHP
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
thinkphp5+layui实现的分页样式示例
2019/10/08 PHP
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
js用Date对象的setDate()函数对日期进行加减操作
2014/09/18 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
jQuery接受后台传递的List的实例详解
2017/08/02 jQuery
详谈JS中数组的迭代方法和归并方法
2017/08/11 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
2017/09/22 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
通过js随机函数Math.random实现乱序
2020/05/19 Javascript
如何实现echarts markline标签名显示自己想要的
2020/07/20 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
Python selenium抓取虎牙短视频代码实例
2020/03/02 Python
keras 简单 lstm实例(基于one-hot编码)
2020/07/02 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
美国在线印刷公司:PsPrint
2017/10/12 全球购物
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
十佳文明家庭事迹
2014/05/25 职场文书
爱国口号
2014/06/19 职场文书
降价通知函
2015/04/23 职场文书
2015年妇委会工作总结
2015/05/22 职场文书
唐山大地震的观后感
2015/06/05 职场文书
vue代码分块和懒加载非必要资源文件
2022/04/11 Vue.js
开发微信小程序之WXSS样式教程
2022/04/18 HTML / CSS