python 类中的__call__是什么?-程序员宅基地

技术标签: python  pycharm  人工智能  小白一起学python  开发语言  


python 类中的__call__是什么?

在类class__call__()是python类中的一种内置方法也称魔法方法,这种在类中统一以_ _开头_ _(注意是两个下划线)结尾的方法,都属于类的内置方法,常用的魔法方法还有__init__,__new__,__del__,__str__,__repr__,等等。

1.今天主要讲一下__call__()的用法

__call__方法是把对象当成函数来使用的时候,会自动调用,也就是说把类的实例化对象,变成一个可以调用的对象,可以让实例对象可以像函数一样被调用。
在python官网里面说的是,此方法会在实例作为一个函数被“调用”时被调用。
python官网

下面直接来看代码理解吧!

输入:

class A:
    # 定义__call__方法
    def __call__(self, a, b):
        print("调用__call__()方法,把对象当成函数来使用", a, b)
    def hello(self, e, f):
        print("调用hello" + e + f)
    
        
c = A()
c("我是参数a", "你是参数b")  # 调用方法一
print("-" * 100)
c.__call__("我是参数a", "你是参数b")  # 调用方法二
print("*" * 100)
c.hello("我是参数e", "你是参数f")

结果

调用__call__()方法,把对象当成函数来使用 我是参数a 你是参数b
----------------------------------------------------------------------------------------------------
调用__call__()方法,把对象当成函数来使用 我是参数a 你是参数b
****************************************************************************************************
调用hello我是参数e你是参数f

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

由上可以看到,通过在A 类中实现 __call__() 方法,变为了可调用对象。使的 c 实例对象可直接用c()的方式输入参数a,b,不需要再.hello()调用。

2.这里再举一个自定义函数的例子,例如:

随便定义一个函数
输入

def say():
    print("小白一起学python")
say()  # 调用方法一
print("-" * 100)
say.__call__()  # 调用方法二

输出

小白一起学python # 调用方法一
----------------------------------------------------------------------------------------------------
小白一起学python # 调用方法二

总结

call方法是把对象当成函数来使用的时候,会自动调用。
参考链接
链接: link
链接: link
链接: link
链接: link

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37142216/article/details/129959609

智能推荐

Android开发经典笔试面试题汇总(持续更新中)_在android中,在屏幕密度为160时,1pt大概等于多少sp-程序员宅基地

文章浏览阅读6k次,点赞4次,收藏25次。1.我们都知道Handler是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得很慢,那么线程销毁的方法是:(A)A. onDestroy()B. onClear()C. onFinish()D. onStop()理解:正确销毁线程的方法应该是handler.removeCallBacks()。2.SharedPreferences保存文件的路径和_在android中,在屏幕密度为160时,1pt大概等于多少sp

微信登录流程_微信登录返回信息-程序员宅基地

文章浏览阅读257次。微信小程序登录_微信登录返回信息

2020年值得收藏与学习280多款H5小游戏,从入门到彻底了解它(附源码)_html5小游戏源码-程序员宅基地

文章浏览阅读8.6k次,点赞25次,收藏84次。作者曾经一度的迷恋H5小游戏(`好玩、收集、模仿、学习`),是从2014年流行开始,到2015年朋友圈爆火。那时经常看到朋友圈好友转发分享H5小游戏,有时候自己也会点进去玩一下,简单的游戏情节设计以及操作方式让我们的碎片化时间有了消遣的方式。那么H5小游戏究竟是什么呢?然而H5小游戏因其休闲性受到广大用户喜爱,同样也受到企业的欢迎,成为互动营销的重要形式之一。普普通通的H5小游戏,为什么能吸引用户念念不忘?又有哪方面的特点呢?_html5小游戏源码

【MFC】MFC DLEdit 设计属于自己的编辑框_鼠标悬停-程序员宅基地

文章浏览阅读122次。MFC DLEdit 设计属于自己的编辑框2012-02-04 13:00 by 捣乱小子,3543阅读,5评论,收藏,编辑起因  无意间看到了大牛们写的自定义编辑框控件,于是找了个时间自己写了一个,加深了对MFC消息机制和一些功能的了解。分析  先来看一张QQ2011的登录窗口,发现当鼠标悬停在编辑框上的时候,会有悬停边框高亮,这样给用户一种很绚丽的视觉享..._static悬停 mfc

svn导出opencv源码地址_svn下载opencv代码-程序员宅基地

文章浏览阅读429次。https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/trunk_svn下载opencv代码

模式识别基础知识_模式识别学什么-程序员宅基地

文章浏览阅读3.2k次,点赞7次,收藏86次。本文章主要介绍了模式识别的基本概论和统计决策方法(贝叶斯决策)和概率密度函数估计。_模式识别学什么

随便推点

[Layui]layui输入框如何设置禁止输入_layui 设置input 不可编辑-程序员宅基地

文章浏览阅读7.6k次。layui输入框设置禁止输入的方法:首先打开相应的代码文件;然后通过设置输入框属性为“disabled readonly class=“layui-input layui-disabled””来实现禁止输入即可layui input禁止输入功能disabledclass = “layui-disabled”readonly (这个可以不要)章..._layui 设置input 不可编辑

Windows 11 版本介绍_windows11 csdn-程序员宅基地

文章浏览阅读3.1k次。Windows 11-微软公司于2021年发布的桌面端操作系统_windows11 csdn

PHPCMS V9 9.3.2安装过程中的BUG之无法连接数据库服务器_成功连接数据库,但是指定的数据库不存在并且无法自动创建,请先通过其他方式建立数-程序员宅基地

文章浏览阅读6.7k次。有时候我们在安装PHPCMS的时候会遇到一个问题,明明我们填写的数据库信息都是正确的,可就是会提示“无法连接数据库服务器,请检查配置!”,但我们通过PHPMYADMIN可以正常登录,这是为什么呢?  原来我也很是不解,可为了能够尽快的安装完,我也没有心思去过多的研究,就在测试服务器上先安装上,然扣再打包上传至服务器再导入数据库。挺麻烦的。今天终于找到了 原因。  PHPCMS V9 安装的_成功连接数据库,但是指定的数据库不存在并且无法自动创建,请先通过其他方式建立数

Spring MVC与Spring框架的无缝整合是通过一系列配置和启动流程实现的-程序员宅基地

文章浏览阅读869次,点赞17次,收藏10次。综上所述,Spring MVC与Spring框架的无缝整合是通过共享配置文件、确保正确的启动顺序、使用前端控制器、监听器、注解式开发、依赖注入以及视图解析等技术手段实现的。10. 在Spring MVC与Spring框架整合的过程中,如何确保正确的启动顺序和前端控制器的作用?Spring MVC与Spring框架的无缝整合是通过一系列配置和启动流程实现的。9. 如何通过注解式开发和依赖注入来简化Spring MVC与Spring框架的整合过程?Spring MVC与Spring框架的无缝整合是通过。

JAVA 各版本新特性介绍_java 新版本特性-程序员宅基地

文章浏览阅读1.3k次,点赞18次,收藏21次。JAVA 各版本新特性介绍_java 新版本特性

用机器学习打造聊天机器人(二) 概念篇-程序员宅基地

文章浏览阅读133次。本文是用机器学习打造聊天机器人系列的第二篇,有助我们先了解下聊天机器人的相关概念。什么是聊天机器人?聊天机器人是一个程序,该程序会回应人类的话,其载体可以是一个网页、一个桌面应用、一个app。人类使用文字或者语音的方式和其交流,其同样以文字或者语音的方式反馈给人类。如果为这样的程序套上一个音箱外表,就是智能音箱;套上一个动物外表,就是机器宠物;套上一个高仿真妹子外表,就是机器..._基于硬编码 基于语义

推荐文章

热门文章

相关标签