在看神经网络代码的时候,类定义中总是会出现__call__方法,它是Python类体中可以定义的一个特殊方法,定义了该方法的对象称为可调用对象,即该对象可以像函数一样被调用。
定义一个可以求解自由落体下降高度的对象
class GDistance:
def __init__(self, g):
self.g = g
def __call__(self, t):
# 自由落体下降距离 s=g*t^2
return (self.g * t ** 2)/2
调用对象
e_gdist = GDistance(9.8)
for t in range(11):
print("%d 秒 下降%.2f 米" %(t, e_gdist(t)))
输出结果
0 秒 下降0.00 米
1 秒 下降4.90 米
2 秒 下降19.60 米
3 秒 下降44.10 米
4 秒 下降78.40 米
5 秒 下降122.50 米
6 秒 下降176.40 米
7 秒 下降240.10 米
8 秒 下降313.60 米
9 秒 下降396.90 米
10 秒 下降490.00 米