广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python中的__call__
  • 265
分享到

python中的__call__

python 2023-01-30 22:01:37 265人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

    如果python中的一个类定义了 __call__ 方法,那么这个类它的实例就可以作为函数调用,也就是实现了 () 运算符,即可调用对象协议    下面是一个简单的例子: class TmpTest: def __init

    如果python中的一个类定义了 __call__ 方法,那么这个类它的实例就可以作为函数调用,也就是实现了 () 运算符,即可调用对象协议

    下面是一个简单的例子:

class TmpTest:
def __init__(self, x, y):
self.x = x
self.y = y

def __call__(self, x, y):
self.x, self.y = x, y


a = TmpTest(1, 2)
a(4, 5)
print(a.x, a.y)
4 5

 

    在本文中不讨论装饰部分的内容,借用装饰器来讲解一个__call__方法的使用,如果需要将一个类作为装饰器,那需要为这个类实现__call__方法,一个使用__call__来实现类装饰器的例子:

class TmpTest:
def __init__(self, func):
self.func=func

def __call__(self, *args,**kwargs):
result=self.func(*args,**kwargs)
return result


@TmpTest
def add_num(x,y):
return x+y

print(add_num(1,0))
1

 

--结束END--

本文标题: python中的__call__

本文链接: https://www.lsjlt.com/news/179592.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python中的__call__
        如果python中的一个类定义了 __call__ 方法,那么这个类它的实例就可以作为函数调用,也就是实现了 () 运算符,即可调用对象协议    下面是一个简单的例子: class TmpTest: def __init...
    99+
    2023-01-30
    python
  • 怎么在python中使用__call__触发执行
    怎么在python中使用__call__触发执行?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python的数据类型有哪些python的数据类型:1. 数字类型,包括int...
    99+
    2023-06-15
  • 详解Python中的__new__、__init__、__call__三个特殊方法
    __new__: 对象的创建,是一个静态方法,第一个参数是cls。(想想也是,不可能是self,对象还没创建,哪来的self) __init__ : 对象的初始化, 是一个实例方法,第一个参数是self。 ...
    99+
    2022-06-04
    详解 方法 Python
  • __init__、forward、__call__三者怎么在pytorch中使用
    本篇文章给大家分享的是有关__init__、forward、__call__三者怎么在pytorch中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1)__init__主要...
    99+
    2023-06-06
  • [Python ] python中文件的
    原文地址: http://blog.163.com/qimeizhen8808@126/ 这女孩写的挺好,有值得学习的地方。   1) 文件的打开和创建,关闭  a)文件的打开和创建 主要有两个open()和file()两个方法。它们的功能...
    99+
    2023-01-31
    文件 Python python
  • Python中的defaultdict
    字典(dictionary)是Python中一种常用的数据类型。不同于其他由数字索引的序列,字典是用"键"(key)来索引的。通常表示为dict(key: val, ...),有以下特征: 键可以是任何不可变(immutable)数据类...
    99+
    2023-01-31
    Python defaultdict
  • python中的asyncore
    在Python中,既可直接使用socket类,也可使用socketserver,asyncore等经过封装的类来进行编码。asyncore这个库中主要包含了两个函数:asyncore.loop([timeout[, use_poll[, m...
    99+
    2023-01-31
    python asyncore
  • python中的whitespace
    python中strip()和split()在无参数的情况下使用whitespace做为默认参数,在帮助文档中对whitespace的解释为6个字符,它们是space, tab, linefeed, return, formfeed, an...
    99+
    2023-01-31
    python whitespace
  • python中的类
    关键字:class含义:带有某些属性和方法的一个集合,可以理解成模板。 object的概念:类的实例。以对应类为模板,创建出来的对象。 如何理解python中的self?1 实例本身,对象。2 可以理解为一个字典变量,内部存的就是对象的数据...
    99+
    2023-01-31
    python
  • Python中的threading
    #!/usr/bin/env python# -*- coding: utf-8 -*-import threading, time#新线程执行的代码:def loop():    print('thread %s is running.....
    99+
    2023-01-31
    Python threading
  • Python中的dict
    # dict # Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 d = {'Michael': 95, 'Bob': 75,...
    99+
    2023-01-31
    Python dict
  • python中的difflib
    #############difflib##############文件差异对比示例1:import difflibtext1 = 'hello westos'text2 = 'hello zhan'text1_lines = text1....
    99+
    2023-01-31
    python difflib
  • python中的__enter__ __
    我们前面文章介绍了迭代器和可迭代对象,这次介绍python的上下文管理。在python中实现了__enter__和__exit__方法,即支持上下文管理器协议。上下文管理器就是支持上下文管理器协议的对象,它是为了with而生。当with语...
    99+
    2023-01-30
    python
  • python中的rabbitmq
    RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写...
    99+
    2023-01-30
    python rabbitmq
  • python中的basestring
    basestring()说明:basestring是str和unicode的超类(父类),也是抽象类,因此不能被调用和实例化,但可以被用来判断一个对象是否为str或者unicode的实例,isinstance(obj, basestring...
    99+
    2023-01-31
    python basestring
  • python中的input
    python中的input()方法是在控制台可以自己输入数据 比如 :定义变量a = 2 现在可以写成 a = input() 可以自己输入变量a的值 注意:input()返回的值是str字符型的 如果要让输入的数字变为整形,可以使用i...
    99+
    2023-01-31
    python input
  • Python中的finally
    Python中的finally 现代语言一般都内置了对异常处理的支持,其中较为广泛使用的就是try语句了。(by gashero)且一般来说其子句还包含有except和finally。Python从Modula-3语言得到了关于异常处理的...
    99+
    2023-01-31
    Python finally
  • python中的subprocess
     python2.7 源码中的注释(由于能力有限,翻译的不太准确): 这个模块允许您开启进程、连接输入、输出和错误的管道,并获取他们的返回代码。这个模块计划替代一些旧代码,如: os.system、os.spawn*、os.Popen、po...
    99+
    2023-01-31
    python subprocess
  • python中的&&及||
    首先说明一下,在python中是没有&&及||这两个运算符的,取而代之的是英文and和or。其他运算符没有变动。  接着重点要说明的是python中的a.any(),我之所以会涉及到这个函数,是因为我在设计某个分段数值函数...
    99+
    2023-01-31
    python
  • Python中的栈
    在python中,个人理解为栈可以用列表来代替服从FILO:First In Last Out其中入栈为(利用append函数)stack = [] stack.append(<item>)出栈为(利用pop函数)stack....
    99+
    2023-01-31
    Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作