# for 遍历对象时: # 1、调用__iter__ # 2、__getitem__,会依次传入0->正无穷 # len 遍历对象时: x = Company(['a', 'b', 'c']) # for i in x[1:2]: # print(i)
from collections.abc import Sized import abc class Company: def __len__(self): return 4 com = Company() print(hasattr(com, "__len__")) # 1、希望判断某个对象的类型 print(isinstance(com, Sized)) # 2、强制子类实现某些方法 class ClassBase(metaclass=abc.ABCMeta): @abc.abstractmethod def get(self): pass class Base(ClassBase): pass x = Base()