说明
本实例代码为python3实现,
分享
- 大数据博客列表
- 开发记录汇总
- 个人java工具库 项目https://gitee.com/wangzonghui/object-tool
- 包含json、string、集合、excel、zip压缩、pdf、bytes、http等多种工具,欢迎使用。
抽象类
- 抽象类是面向对象开发的重要功能之一,当项目因需求复杂性增强,可通过抽象类,定义公共方法与属性,抽象方法与属性,保证项目统一性和结构性,方便开发和维护。
- Python支持多继承
代码
# 抽象类必须导入该模块
from abc import abstractmethod, ABCMeta
class base(metaclass=ABCMeta):
@abstractmethod #定义抽象方法,无需实现
def method1(self):
pass
# 非抽象方法
def method2(self):
print('父类非抽象方法')
class children(base):
def method1(self):
print('子类实现父类抽象方法')
child = children()
child.method1()
child.method2()
接口
- 接口分无返回值和有返回值。
无返回值接口
# 定义接口
class InterfaceModel(object):
def get_a(self):
pass
def get_b(self):
pass
def get_c(self):
pass
# 实现接口,接口方法不必全部实现,仅实现需要的部分即可
class model(InterfaceModel):
def get_a(self):
print("Impl1_a")
def get_b(self):
print("Impl1_b")
if __name__ == '__main__':
model=model()
model.get_a()
model.get_b()
有返回值接口
- -> 后面表示说明此方法的返回值(注释作用)
- … 表示返回值可以有0个或多个
# 定义接口
class InterfaceModel(object):
def get_a(self) -> int: ... #返回0~n个参数
def get_b(self) -> int: ...
def get_c(self) -> int: ...
# 接口实现1
class model(InterfaceModel):
def get_a(self):
print("实现类执行get_a")
return '接口get_a返回值'
def get_b(self):
print("实现类执行get_b")
if __name__ == '__main__':
model=model()
model.get_a()
model.get_b()
总结
- Python语法过于灵活,工具库众多,能完成日常绝大多数功能需求,由于性能和过于灵活,不太适合大型项目。