Python模块 - collections|abc

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

 

posted @ 2020-02-24 14:45  慕沁  阅读(2147)  评论(0)    收藏  举报