迭代协议
class Counter: def __init__(self, max_count): self.max_count = max_count def __iter__(self): self.current = 0 return self def __next__(self): if self.current < self.max_count: self.current += 1 return self.current raise StopIteration
调用协议
class Multiplier: def __init__(self, factor): self.factor = factor def __call__(self, x): return x * self.factor double = Multiplier(2) print(double(5)) # 10
转载请注明:周志洋的博客 » Python进阶-协议与鸭子类型