__call__()让你的实例像方法一样去调用
允许你的类的实例像函数一样被调用
基本作用
__call__()
方法是一个特殊方法,允许你的类的实例像函数一样被调用。
示例:
1class Example:
2 def __init__(self):
3 print("Instance Created")
4
5 def __call__(self):
6 print("Instance is called via special method")
7
8# 创建类的实例
9e = Example()
10
11# 调用__call__方法
12e() #Instance is called via special method
__call__
和__init__
的区别:
__init__
用于初始化实例__call__
用于定义实例被调用时的行为
典型用法
- 让对象行为表现得像函数
1class Multiplier:
2 def __init__(self, factor):
3 self.factor = factor
4
5 def __call__(self, x):
6 return self.factor * x
7
8double = Multiplier(2)
9print(double(5)) # 输出: 10
Multiplier
类的实例 double
可以被调用来将输入值乘以指定的因子。
- 创建函数工厂,根据参数生成特定行为的函数