# 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()