github学习笔记
1. 什么事抽象类?
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
2. 在Python中我们应该如何使用抽象类了?
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@File : interface.py
@Time : 2022/09/12 21:21:05
@Author : scliang
@Desc : None
'''
# here put the import lib
# 引入抽象类
from abc import ABCMeta, abstractmethod
class Payment(metaclass=ABCMeta):
# abstract class
@abstractmethod
def pay(self,money):
pass
# 实现抽象类
# 实现抽象类必须实现抽象类中的所有方法
class AliPay(Payment):
def pay(self,money):
print("支付宝支付%d" %money)
class WechatPay(Payment):
def pay(self, money):
print("微信支付%d元" % money)
# 直接实例化一个抽象类会直接报错
# p = Payment()
# print("abstract method:",p)
'''
Traceback (most recent call last):
File "F:\GoProjects\src\MyPractiseNotes\设计模式\interface.py", line 33, in <module>
p = Payment()
TypeError: Can't instantiate abstract class Payment with abstract method pay
'''
# 可以实例化抽象类的实现类
p = AliPay()
p.pay(100)
"""
PS F:\GoProjects\src\MyPractiseNotes\设计模式> python .\interface.py
支付宝支付100
"""