关于python中的抽象类

关于python中的抽象类

本质是:不想让使用者实例化抽象类

对于 abstractstaticmethod 在py3.3中弃用了。

 

一 如何定义一个抽象类

1 常规做法 先import ABC 继承ABC

2 用abstractmethod或abstractclassmethod装饰一个方法。

二 使用说明

子类中 必须要定义   在基类中 被abstractmethod 装饰的 方法。

两种情况:

1) 正常方法 就是self,参数1 ,参数2...

2)静态方法 也是staticmethod 装饰这个方法。

  注意在 基类中使用staticmethod   不会影响到 子类。

 

正确例子:

from abc import ABC, abstractstaticmethod, abstractclassmethod, abstractmethod

class BasePrompt(ABC):
    @abstractmethod
    def new_prompt(context, content):
        return "    "
class NewPro(BasePrompt):
    # def aaa(self):
    #     print("nnnnnnnnn")
    @staticmethod
    def new_prompt(context, content):
        print("abs--------")

if __name__ == "__main__":
    print(1111111)
    # bp = BasePrompt()
    np = NewPro()
    np.new_prompt(1,2)

 

posted on 2024-06-05 15:02  lexn  阅读(3)  评论(0编辑  收藏  举报

导航