美文网首页Python
Python中的抽象类和抽象方法

Python中的抽象类和抽象方法

作者: 小雨Coding | 来源:发表于2021-03-09 11:51 被阅读0次

抽象类的概念

抽象类是一个特殊的类,它只能被继承,不能被实例化。python中如果要使用抽象类则需要导入模块abc,

import abc

在定义抽象类的时候,需要添加参数metaclass=abc.ABCMeta,在定义抽象方法时需要在方法前添加声明

@abc.abstractmethod

注意,我们只需写出方法的名称,不用写出具体的方法内容。
例如:

# 抽象类和抽象方法
import abc

class Person(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def eat(self):
        pass

或者我们也可以写成

from abc import *

class Person(metaclass=ABCMeta):
    @abstractmethod
    def eat(self):
        pass

案例:使用抽象类和抽象方法来计算图形的周长和面积

from abc import *
import math

# 创建一个抽象类,计算周长和面积
class Graph(metaclass=ABCMeta):

    # 抽象方法求周长
    @abstractmethod
    def get_primeter(self): pass

    # 抽象方法求面积
    @abstractmethod
    def get_area(self): pass

# 派生出一个类 --- 等边三角形
class Equil_Triangle(Graph):
    def __init__(self, len):
        self.len = len

    # 实现抽象方法--求面积
    def get_area(self):
        return math.sqrt(3)/4*self.len*self.len

    # 实现抽象方法--求周长
    def get_primeter(self):
        return 3*self.len

if __name__ == '__main__':
    print("=== 等边三角形 ===")
    triangle01 = Equil_Triangle(10)
    print("这个三角形的边长是%s"%(triangle01.len))
    print("周长是%d 面积是%.2f"%(triangle01.get_primeter(), triangle01.get_area()))

相关文章

  • 抽象类与接口的区别

    抽象类 1.抽象类中可以构造方法 2.抽象类中可以存在普通属性,方法,静态属性和方法。 3.抽象类中可以存在抽象方...

  • 抽象类、接口

    **抽象类** 特点:1.抽象类中可以构造方法2.抽象类中可以存在普通属性,方法,静态属性和方法。3.抽象类中可以...

  • 接口与抽象类

    抽象类 特点: 1.抽象类中可以构造方法 2.抽象类中可以存在普通属性,方法,静态属性和方法。 3.抽象类中可以存...

  • 杂七杂八学习巩固

    Java中抽象类和接口类 在抽象类中的方法不一定是抽象方法,含有抽象方法的类必须定义成抽象类。 什么时候使用抽象类...

  • 基础知识一

    一、抽象类与接口 抽象类 特点: 1.抽象类中可以构造方法 2.抽象类中可以存在普通属性,方法,静态属性和方法。 ...

  • 简述接口和抽象类

    接口和抽象类 定义 抽象类:有抽象方法的类就是抽象类 抽象类中可以有一般的变量和一般的方法 子类继承抽象类必须实现...

  • 3 抽象类与接口

    3.1 抽象类 抽象类是从多个类中抽象出来的模板。 抽象方法和抽象类的规则如下: - 抽象类必...

  • Typescript中的抽象类和抽象方法

    什么是抽象类 使用abstract关键字定义抽象类和抽象方法 抽象类不允许被实例化 抽象类中的抽象方法必须被实现 ...

  • 接口和抽象类之间的关系

    一、抽象类:含有抽象方法的类叫做抽象类(抽象类中不一定只含有抽象方法,可以有普通方法和成员变量),抽象类必须在类前...

  • java中抽象类

    抽象类的概述: A:抽象类和抽象方法必须用abstract关键字修饰;B:抽象类中不一定有抽象方法,但是有抽象方法...

网友评论

    本文标题:Python中的抽象类和抽象方法

    本文链接:https://www.haomeiwen.com/subject/hqvioktx.html