Python中的抽象类与抽象方法实现约束(基本不用) --Python3

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

定义抽象类和抽象方法,如果某类继承了抽象类,必须重写抽象方法,否则会报错。

from abc import ABCMeta, abstractmethod

class Base(object, metaclass=ABCMeta):  # 定义一个抽象类

    def f1(self):
        print('f1')

    @abstractmethod
    def f2(self):
        '''
        抽象方法
        :return:
        '''
        pass

class Foo(Base):
    pass

obj = Foo()
'''
如果没有重写抽象方法,不能实例化类
Can't instantiate abstract class Foo with abstract methods f2
'''

需要重写了抽象类的f2方法:

from abc import ABCMeta, abstractmethod

class Base(object, metaclass=ABCMeta):  # 定义一个抽象类

    def f1(self):
        print('f1')

    @abstractmethod
    def f2(self):
        '''
        抽象方法
        :return:
        '''
        pass

class Foo(Base):
    def f2(self):
        pass

obj = Foo()

猜你喜欢

转载自blog.csdn.net/Thanlon/article/details/94585386