__call__()
一个类实例可以通过__call__()变成一个可调用对象
例如: 把Person 类变成一个可调用对象:
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
def __call__(self, friend):
print 'My name is %s...' % self.name
print 'My friend is %s...' % friend
对Person实例直接调用:
>>> p = Person('Tom', 'male')
>>> p('Rose')
My name is Bob...
My friend is Rose...
单看 p('Rose') 你无法确定 p 是一个函数还是一个类实例,
所以,在Python中,函数也是对象,对象和函数的区别并不显著。
__call__()相关推荐
- Python __call__详解
20210507 相当于函数的默认调用()? 可以调用的对象 关于 __call__ 方法,不得不先提到一个概念,就是可调用对象(callable),我们平时自定义的函数.内置函数和类都属于可调用对象 ...
- PyTorch中nn.Module类中__call__方法介绍
在PyTorch源码的torch/nn/modules/module.py文件中,有一条__call__语句和一条forward语句,如下: __call__ : Callable[-, Any] = ...
- Python3中__call__方法介绍
如果Python3类中有__call__方法,那么此类实例的行为类似于函数并且可以像函数一样被调用.当实例作为函数被调用时,如果定义了此方法,则x(arg1, arg2, -)是x.__call__( ...
- python 类的特殊属性、特殊方法 __str__,__bases__,__mor__,__add__,__call__
str 方法 class A():def __str__(self): # 重写__str__方法,功能:自动打印以下内容return "这是__str__方法" a = A() ...
- python __call__的作用,是可以将对象作为方法使用的关键 分析nn.Module源码
代码举例 import torch.nn as nnclass LSTMClassifier(nn.Module):"""This is the simple RNN m ...
- python-装饰器,类与对象,私有字段,析构,__call__,继承,多继承,接口
1.装饰器执行流程 装饰器可用于权限管理: 装饰器:将原函数替换为wrapper函数 def outer() @outer --- func1作为参数传入outer() def wrapper() - ...
- __call__() got an unexpected keyword argument 'partition_info'
__call__() got an unexpected keyword argument 'partition_info' 解决办法:将tensorflow降级为1.8.0,解决问题.
- python六十三: __call__
对象后面加括号,触发执行. ps:构造方法的执行是由创建对象触发的,即 对象 = 类名(); 而对于__call__方法的执行是由对象后加括号触发的, 即对象() 或者 类()() class Foo ...
- python中__init__后面加特殊符号_详解Python中的__new__、__init__、__call__三个特殊方法...
__new__: 对象的创建,是一个静态方法,第一个参数是cls.(想想也是,不可能是self,对象还没创建,哪来的self) __init__ : 对象的初始化, 是一个实例方法,第一个参数是sel ...
- python 元类的call_【原创】Python 对象创建过程中元类, __new__, __call__, __init__ 的处理...
原始type: type是最原始的元类,其__call__方法是在你使用" t_class = type(classname_string, base_classes_tuple, attr ...
最新文章
- 链表问题8——将单向链表按某值划分成左边小、中间相等、右边大的形式(进阶)
- python爬虫教程入门-Python爬虫系列 - 入门教学
- java斗破苍穹游戏阵容,斗破苍穹手游竞技场阵容搭配解析 最强阵容你知道吗
- 机器学习必学10大算法
- asp.net学习笔记·文件上传
- SpringBoot的端口配置server.port没办法设置成Linux的环境变量
- js基础中Null、undefined、NaN、false、0、{}的理解及使用
- HTML+CSS+JS实现 ❤️动态散花背景❤️
- bzoj 4570: [Scoi2016]妖怪 凸包
- java程序员 进阶_Java程序员进阶架构师的五个阶段,你到
- StateListDrawable 动态更换背景
- day9 集合基础命令
- android白圈闪现动画,Android基于Shader的图像处理(9)-仿抖音闪白特效
- vue html实例,一个页面上多个Vue实例
- NAS与文件系统服务器比较,磁盘阵列与NAS服务器的比较
- oracle死锁级别locked_mode
- win11 删除自带的微软输入法
- AS3 setTimeOut、setInterval、Timer 的区别和用法
- 知行合一拿什么保证?
- 元宇宙岗位薪资排行榜,出炉!