周志洋

个人站

持续学习 才能不被淘汰


Python进阶-协议与鸭子类型

迭代协议

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进阶-协议与鸭子类型

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦