关于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)