python中的__call__方法

首先__call__()是什么?

带有双下划线 的__call__()是python 定义的类中的特殊方法

先上结论:如果在python中的类中定义了个__call__()方法,
该类的实例对象可以被调用,对象可以充当函数的作用。

举例说明

class Power(object):
	def __init__(self):
		pass
	def __call__(self,x,n):
		return x**n
	def calculate(self,x,n)
		return x**n

我们定义了一个Power类 功能是计算x的n次方。例如计算2的3次方,如何调用这个功能来计算呢。
上代码

power=Power()
power.calculate(2,3)#通过掉用对象power的calculate方法
# out:8

通过调用对象power的calculate方法,可以实现该功能
但是当我们学会__call__()方法后,可以直接这样

power=Power()#先实例化创造一个对象power
power(2,3)#通过掉用对象power的calculate方法
# out:8

此时的power对象直接被掉用,作用类似于方法
所以__call__ 可以让我们直接掉用对象,充当函数的作用。

优点

  1. 省去绞尽脑汁去命名方法,定义__call__()方法,实现一定功能
  2. 直接调用对象,简介明了
    通__call__()方法,可以看出python中对象和函数的关系,对象可以充当函数。函数本身也是对象,python中万物皆对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值