返回顶部
首页 > 资讯 > 后端开发 > Python >python抽象类的使用方法
  • 900
分享到

python抽象类的使用方法

2023-06-08 00:06:53 900人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python抽象类的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、问题描述主要使用场景是这样的比如京东上买东西,买完东西后需要支付,京东可以使用

这篇文章主要介绍了python抽象类的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、问题描述

主要使用场景是这样的

比如京东上买东西,买完东西后需要支付,京东可以使用支付宝进行支付,也可以通过微信支付,也可以通过京东白条支付,也可以通过apppay支付,

每种支付需要走内部的流程。

支付的统一入口是京东,但是点击不同的支付,需要走不同的流程,京东这边的流程就需要调用不同的函数;

那统一入口这里的调用起来就会比较麻烦

class Ali(object):    def alipay(self):        pass          class Ten(object):    def tenpay(self):        pass     class App(object):    def apppay(self):        pass

都是一个支付,阿里的支付、腾讯的支付、苹果的支付方法名都不一样

二、解决办法

此时我们就可以引入Python中的抽线类

首先需要引入2个模块

from abc import ABCMetafrom abc import abstractmethod

然后实现如下代码

from abc import ABCMetafrom abc import abstractmethod # Payclass就是一个抽象类class Payclass(metaclass=ABCMeta):     @abstractmethod    def pay(self):        pass class Ali(Payclass):    def alipay(self,money):        print("使用阿里支付{money}".fORMat(money = money)) # # 如果想使用抽象类,则只需要继承这个抽象类就可以了class Ten(Payclass):    def tenpay(self,money):        print("使用微信支付{money}".format(money = money)) class App(Payclass):    def apppay(self,money):        print("使用苹果支付{money}".format(money = money))

python抽象类的使用方法

比如我们没有按照要求实例化pay这个方法,执行代码会抛错

wec = Ten()

python抽象类的使用方法

那我们就按照要求修改代码即可,这次实例化就不会抛错

from abc import ABCMetafrom abc import abstractmethod # Payclass就是一个抽象类class Payclass(metaclass=ABCMeta):     @abstractmethod    def pay(self):        pass class Ali(Payclass):    def pay(self,money):        print("使用阿里支付{money}".format(money = money)) # # 如果想使用抽象类,则只需要继承这个抽象类就可以了class Ten(Payclass):    def pay(self,money):        print("使用微信支付{money}".format(money = money)) class App(Payclass):    def pay(self,money):        print("使用苹果支付{money}".format(money = money)) wec = Ten()

然后我们可以在定义一个函数,搭配抽线类来实现,这个的第一个参数就是每个支付的实例,另外一个参数就是每个支付需要的参数

def pay(obj,*args,**kwargs):    obj.pay(*args,**kwargs)

整体的代码如下,在调整一下参数,整体的代码如下

from abc import ABCMetafrom abc import abstractmethod # Payclass就是一个抽象类class Payclass(metaclass=ABCMeta):     @abstractmethod    def pay(self):        pass class Ali(Payclass):    def pay(self,*args,**kwargs):        print("使用阿里支付{money}".format(money = args[0])) # # 如果想使用抽象类,则只需要继承这个抽象类就可以了class Ten(Payclass):    def pay(self,*args,**kwargs):        print("使用微信支付{money}".format(money = args[0])) class App(Payclass):    def pay(self,*args,**kwargs):        print("使用苹果支付{money}".format(money = args[0])) wec = Ten() app = App()def pay(obj,*args,**kwargs):    obj.pay(*args,**kwargs)  pay(app,"100")

执行结果如下

python抽象类的使用方法

三、使用抽象类的注意事项

抽象类不能被实例化

子类需要严格遵守父类的抽象类的规则,而孙类不需要遵守这个规则

如果想使用抽象类,则该类只需要继承抽象类即可

感谢你能够认真阅读完这篇文章,希望小编分享的“python抽象类的使用方法”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网Python频道,更多相关知识等着你来学习!

--结束END--

本文标题: python抽象类的使用方法

本文链接: https://lsjlt.com/news/250519.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python抽象类的使用方法
    这篇文章主要介绍了python抽象类的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、问题描述主要使用场景是这样的比如京东上买东西,买完东西后需要支付,京东可以使用...
    99+
    2023-06-08
  • JAVA抽象类和抽象方法怎么使用
    在Java中,抽象类是用来定义一组相关类的共同特征和行为的。抽象类不能被实例化,只能被继承。要定义一个抽象类,需要在类的声明前加上关...
    99+
    2023-08-17
    JAVA
  • Python抽象基类的定义与使用方法
    目录1、定义抽象基类的子类2、标准库中的抽象基类3、定义抽象基类4、再看白鹅类型前言: 我们写Python基本不需要自己创建抽象基类,而是通过鸭子类型来解决大部分问题。《流畅的Pyt...
    99+
    2024-04-02
  • 在Python中定义和使用抽象类的方法
    像java一样python也可以定义一个抽象类。 在讲抽象类之前,先说下抽象方法的实现。 抽象方法是基类中定义的方法,但却没有任何实现。在java中,可以把方法申明成一个接口。而在python中实现一个抽象...
    99+
    2022-06-04
    定义 方法 抽象类
  • 在Python中使用静态,类或抽象方法
    方法是存储在类属性中的函数,你可以用下面这种方式声明和访问一个函数 >>> class Pizza(object): ... def __init__(self, size): ... ...
    99+
    2023-01-31
    抽象 静态 方法
  • Golang中的抽象类使用方法详解
    Golang中的抽象类使用方法详解 在Go语言中,并没有传统意义上的抽象类和接口继承的概念,但是可以通过结构体嵌套和接口组合来实现类似的功能。本文将详细介绍如何在Golang中实现类似...
    99+
    2024-03-14
    方法 golang 抽象类 go语言
  • java抽象类的使用方法是什么
    在Java中,抽象类是一种不能被实例化的类,通常用于定义一些抽象方法和非抽象方法,用来作为其他类的模板或基类。抽象类使用方法如下: ...
    99+
    2024-03-13
    java
  • 在Python中定义和使用 抽象类及抽象
    原文链接:http://www.jb51.net/article/87710.htm 本文根据自己的理解和思考,对原文略有改动。。。 Python中我们可以使用abc模块来构建抽象类。在讲抽象类之前,先说下抽象方法的实现。 抽象方法是基类...
    99+
    2023-01-31
    抽象 定义 抽象类
  • 什么是php抽象类和抽象方法
    这篇文章主要介绍“什么是php抽象类和抽象方法”,在日常操作中,相信很多人在什么是php抽象类和抽象方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是php抽象类和抽象方法”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-20
  • Python实现抽象基类的3三种方法
    Python的抽象基类类似于Java、C++等面向对象语言中的接口的概念。抽象基类提供了一种要求子类实现指定协议的方式,如果一个抽象基类要求实现指定的方法,而子类没有实现的话,当试图创建子类或者执行子类代码时会抛出异常。这里简单介绍一下P...
    99+
    2023-01-31
    三种 抽象 方法
  • JAVA抽象类和抽象方法(abstract)实例分析
    抽象类和抽象方法是Java中用于实现抽象化的概念。抽象类是一个不能被实例化的类,它可以包含抽象方法和非抽象方法。抽象方法是一个没有具...
    99+
    2023-08-16
    Java
  • C#接口、抽象类、抽象方法和虚方法的区别是什么
    C#接口、抽象类、抽象方法和虚方法的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C#抽象类和接口孩子间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,...
    99+
    2023-06-17
  • Golang函数的抽象类型应用方法
    Golang是目前非常流行的一种程序语言,一大特点就是其简洁、高效、跨平台、易学等优势。这个语言集成了许多现代化编程语言的高科技特征,最近几年来更是备受开发人员的追捧。其中Golang的抽象类型应用方法对于开发人员来说相当重要,本文将主要讲...
    99+
    2023-05-16
    Golang 抽象类型 应用方法
  • 知道java抽象类与抽象方法是什么吗?
    java抽象类与抽象方法是什么?在类的继承中,如果一个个新的子类被定义,子类变得越来越具体,父类变得更加一般和通用,类的设计应该保证父子类能够共享特征,有时将父类设计得非常抽象,使得父类没有具体的实例,这样的类叫做抽象类;一般当我们设计一个...
    99+
    2016-03-20
    java教程 java 抽象类 抽象方法
  • C#抽象类的用法介绍
    假设有2个类,一个类是主力球员,一个类是替补球员。 public class NormalPlayer { public int ID { get; ...
    99+
    2024-04-02
  • Python抽象类应用详情
    目录一、问题场景二、使用抽象类思想解决1、错误写法 2、改进写法 3、继续优化三、使用抽象类的注意事项抽象类作用:抽象类就是控制子类的方法的名称,要求子类必须按照...
    99+
    2024-04-02
  • java抽象方法怎么使用
    Java中的抽象方法使用需要遵循以下步骤:1. 在父类中声明抽象方法,使用`abstract`关键字修饰,不提供方法体。例如:```...
    99+
    2023-08-25
    java
  • 函数重写与抽象方法:理解子类实现父类抽象方法的必要性
    函数重写允许子类重新定义父类方法,而抽象方法强制子类实现父类的未实现方法。子类实现父类抽象方法至关重要,因为它:提高代码的灵活性和可扩展性;减少代码冗余并促进重用;增强可测试性,允许轻松...
    99+
    2024-05-03
    抽象方法 函数重写 python
  • java抽象类怎么使用
    Java中的抽象类是指不能被实例化的类,只能作为父类被继承。抽象类可以包含抽象方法和非抽象方法。要使用抽象类,需要按照以下步骤进行:...
    99+
    2023-08-30
    java
  • python抽象类的作用是什么
    Python中的抽象类是一种特殊的类,不能直接实例化,主要用于定义接口和规范子类的行为。 抽象类的作用如下: 定义接口:抽象类可...
    99+
    2023-10-25
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作