python--抽象类,接口类

简介: python--抽象类,接口类

python 没有接口这个概念

接口类,抽象类: 制定一个规范.

第一版

class Alipay:
    def __init__(self, money):
        self.money = money
    def pay(self):
        print('使用支付宝支付了%s' % self.money)
class Jdpay:
    def __init__(self, money):
        self.money = money
    def pay(self):
        print('使用京东支付了%s' % self.money)
a1 = Alipay(200)
a1.pay()
j1 = Jdpay(100)
j1.pay()

结果:

使用支付宝支付了200
使用京东支付了100

第二版  改进,让你支付的方式一样

class Alipay:
    def __init__(self, money):
        self.money = money
    def pay(self):
        print('使用支付宝支付了%s' % self.money)
class Jdpay:
    def __init__(self, money):
        self.money = money
    def pay(self):
        print('使用京东支付了%s' % self.money)
def pay(obj):
    obj.pay()
a1 = Alipay(200)
j1 = Jdpay(100)
pay(a1)  # 归一化设计,通过调用pay函数,执行对应类下的方法,类名.方法
pay(j1)

结果:

使用支付宝支付了200
使用京东支付了100

第三版,制定规则,抽象类,接口类

from abc import ABCMeta, abstractmethod
class Payment(metaclass=ABCMeta):  # 抽象类(接口类):
    @abstractmethod
    def pay(self):
        pass  # 制定了一个规范
class Alipay(Payment):
    def __init__(self, money):
        self.money = money
    def pay(self):
        print('使用支付宝支付了%s' % self.money)
class Jdpay(Payment):
    def __init__(self, money):
        self.money = money
    def pay(self):
        print('使用京东支付了%s' % self.money)
class Wechatpay(Payment):
    def __init__(self, money):
        self.money = money
    def pay(self):
        print('使用微信支付了%s' % self.money)
def pay(obj):
    obj.pay()
w1 = Wechatpay(200)
a1 = Alipay(200)
j1 = Jdpay(100)
pay(a1)  # 归一化设计
pay(j1)

结果:

使用支付宝支付了200
使用京东支付了100

下面的类都继承了Payment类,Payment下面有个pay方法,使用了装饰器,如果继承了Payment类的类下面没有pay方法,实例化子类的时候会报错


相关文章
|
2月前
|
C语言 Python
python 调用c接口
【10月更文挑战第12天】 ctypes是Python的一个外部库,提供和C语言兼容的数据类型,可以很方便地调用C DLL中的函数
56 0
|
15天前
|
数据采集 存储 XML
Python爬虫:深入探索1688关键词接口获取之道
在数字化经济中,数据尤其在电商领域的价值日益凸显。1688作为中国领先的B2B平台,其关键词接口对商家至关重要。本文介绍如何通过Python爬虫技术,合法合规地获取1688关键词接口,助力商家洞察市场趋势,优化营销策略。
|
5天前
|
数据采集 存储 API
利用Python爬虫获取1688关键词接口全攻略
本文介绍如何使用Python爬虫技术合法合规地获取1688关键词接口数据,包括环境准备、注册1688开发者账号、获取Access Token、构建请求URL、发送API请求、解析HTML及数据处理存储等步骤,强调遵守法律法规和合理使用爬虫技术的重要性。
|
16天前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
74 5
|
2月前
|
索引 Python
python-类属性操作
【10月更文挑战第11天】 python类属性操作列举
23 1
|
2月前
|
Java C++ Python
Python基础---类
【10月更文挑战第10天】Python类的定义
27 2
|
2月前
|
设计模式 开发者 Python
Python类里引用其他类
Python类里引用其他类
29 4
|
2月前
|
设计模式 开发者 Python
Python 类中引用其他类的实现详解
Python 类中引用其他类的实现详解
54 1
|
2月前
|
JSON 缓存 API
在 Python 中使用公共类处理接口请求的响应结果
在 Python 中使用公共类处理接口请求的响应结果
36 1
WK
|
2月前
|
Python
Python类命名
在Python编程中,类命名至关重要,影响代码的可读性和维护性。建议使用大写驼峰命名法(如Employee),确保名称简洁且具描述性,避免使用内置类型名及单字母或数字开头,遵循PEP 8风格指南,保持项目内命名风格一致。
WK
21 0