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 ZipFile模块详解
Nov 01 Python
jupyter安装小结
Mar 13 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
Centos下实现安装Python3.6和Python2共存
Aug 15 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
Python通用循环的构造方法实例分析
Dec 19 Python
Django中多种重定向方法使用详解
Jul 17 Python
Tensorflow实现酸奶销量预测分析
Jul 19 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
Nov 29 Python
python如何使用jt400.jar包代码实例
Dec 20 Python
python获取栅格点和面值的实现
Mar 10 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 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读取目录及子目录下所有文件名的方法
2014/10/20 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
java解析json方法总结
2019/05/16 PHP
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
微信小程序中换行空格(多个空格)写法详解
2018/07/10 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
微信小程序实现获取用户信息并存入数据库操作示例
2019/05/07 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
jQuery实现手风琴特效
2021/01/11 jQuery
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
Python assert关键字原理及实例解析
2019/12/13 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
Lampegiganten丹麦:欧洲领先的照明网上商店
2018/04/25 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
文明家庭先进事迹材
2014/01/27 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
骨干教师申报材料
2014/12/17 职场文书
教导主任个人总结
2015/03/03 职场文书
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
python和anaconda的区别
2022/05/06 Python