Python是什么Python的ABC入门

前言

Python是一种经过精心挑选的通用编程语言,可用于大型和小型应用程序。使用 Python,您可以决定如何连接 Web 开发和数据分析。Python 的普遍使用是由于其广泛的标准库、易读性以及对不同范例(如实用、过程和面向对象的编程技术)的赞助。Python 模块与各种数据库相结合,使它们成为进行大规模数据分析的绝佳机会。Python编程语言通常是数据科学和机器学习入门课程的最佳选择。

Python的ABC是什么?它代表抽象基类,是基于抽象的Python类中的一个概念。抽象是面向对象编程的一个组成部分。

【----帮助Python学习,以下所有学习资料文末免费领!----】

抽象就是我们所说的对用户隐藏程序的内部过程。以电脑鼠标为例,我们点击左键或右键,相应的事情就会发生,或者滚动鼠标滚轮,特定的任务就会发生。我们不知道内部功能,但我们知道单击此按钮将完成我们的工作。

在抽象中,用户不知道内部功能,但熟悉该方法的目的。如果我们以模块为例datetime,我们确实知道运行该datetime.now()函数将返回当前日期和时间,但不知道这是如何发生的。

Python中的基础知识

Python 不是完全面向对象的编程语言,但它支持抽象类和抽象等特性。我们不能直接在 Python 中创建抽象类,因此 Python 提供了一个名为 abc 的模块,它提供了定义抽象基类 (ABC) 基类的基础结构。

什么是抽象基类?它们为具体类提供了蓝图。它们只是定义但没有实现,而是需要子类来实现。

定义 ABC

让我们通过一个例子来理解我们如何定义一个带有抽象方法的抽象类。

img

类Friend派生自模块ABC中的类abc,使其成为抽象类,然后在类内部,@abstractmethod定义了一个装饰器来表明函数角色是一个抽象方法。

abc模块有另一个ABCMeta用于创建抽象类的类。

img

ABC 在行动

现在我们将看到如何创建一个抽象类和抽象方法,然后通过继承在具体类中实现它。

img

img

在上面的代码中,我们创建了一个抽象类调用并使用装饰器在类中Friends定义了抽象方法。role@abstractmethod

然后我们创建了三个具体派生类 、Sachin和Rishu,Yashwant它们继承自该类并在其中Friends实现了抽象方法。role

然后我们实例化派生类并调用role使用类的实例来显示结果。

img

正如我们之前讨论的,抽象类提供了将方法实现到具体子类中的蓝图。

img

在上面的代码中,我们为类创建了一个蓝图Details。然后我们创建了一个Sachin继承自 的类Details,并根据蓝图实现了方法。

然后我们实例化了类,然后打印了,和Sachin的值。getnamegetrolegethobby

img

如果我们创建一个不遵循抽象类蓝图的类怎么办?

img

Python 将在执行上述代码时引发错误,因为该类Sachin不遵循类Details蓝图。

img

ABC的使用

正如我们在上面的示例中看到的,如果派生类不遵循抽象类的蓝图,则会引发错误。

这就是 ABC(抽象基类)在确保子类必须遵循该蓝图方面发挥重要作用的地方。因此可以说,从抽象类继承的子类必须遵循相同的结构并实现抽象方法。

ABC里面的具体方法

我们还可以在抽象类中定义具体方法。具体方法是具有完整定义的普通方法。

img

在上面的代码中,concrete_method是在抽象类中定义的具体方法,该方法是使用类 Test 的实例调用的。

img

抽象类实例化

抽象类只能定义不能实例化,因为它们不是具体类。Python 不允许为抽象类创建对象,因为没有实际的实现可以调用,而它们需要子类来实现。

img

输出

img

我们收到错误消息,指出我们无法使用名为getnameand的抽象方法实例化抽象类 Details getrole。

抽象属性

正如abc模块允许我们使用装饰器定义抽象方法一样@abstractmethod,它也允许我们使用装饰器定义抽象属性@abstractproperty。

img

我们创建了一个抽象类 Hero 并定义了两个抽象属性usinghero_name和。然后,在派生类中,我们使用装饰器来实现它们,使它们成为 getter 方法。reel_name@abstractpropertyRDJ@property

然后我们实例化类并使用类实例访问和RDJ的值。hero_namereel_name

img

如果我们没有将@property装饰器放在类中RDJ,我们将不得不调用hero_nameand reel_name。

img

注意:abstractproperty是一个已弃用的类,我们可以使用@propertywith@abstractmethod来定义抽象属性。Pycharm IDE 在使用该类时发出警告abstractproperty。

img

上面的代码如果我们修改一下就会变成下面这样。

img

只需在抽象类中应用上述代码中所示的修改并运行代码。代码将像之前一样运行而不会出现任何错误。

结论

我们在本文中介绍了抽象类、抽象方法和抽象属性的基础知识。Python 有一个abc模块,它提供用于定义抽象基类的基础结构。

ABC模块中的类可abc用于创建抽象类。ABC是一个辅助类,它有ABCMeta元类,我们也可以通过传递metaclass关键字和使用来定义抽象类ABCMeta。这两个类之间的唯一区别是ABCMeta具有附加功能。

创建抽象类后,我们使用@abstractmethodand ( @propertywith @abstractmethod) 装饰器来定义类内部的抽象方法和抽象属性。

关于Python的自学

最后给大家介绍一个完整的python学习路线,内容是从入门到进阶,既有思维导图,也有经典书籍,还有配套视频,给那些想学习python以及数据分析的小伙伴们一点帮助!

一、Python入门

下面这些内容是Python各个应用方向都必备的基础知识,想做爬虫、数据分析或者人工智能,都得先学会他们。任何高大上的东西,都是建立在原始的基础之上。打好基础,未来的路会走得更稳重。

包含:

计算机基础

在这里插入图片描述

python基础

在这里插入图片描述

Python入门视频600集:

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

二、Python爬虫

爬虫作为一个热门的方向,不管是在自己兼职还是当成辅助技能提高工作效率,都是很不错的选择。

通过爬虫技术可以将相关的内容收集起来,分析删选后得到我们真正需要的信息。

这个信息收集分析整合的工作,可应用的范畴非常的广泛,无论是生活服务、出行旅行、金融投资、各类制造业的产品市场需求等等,都能够借助爬虫技术获取更精准有效的信息加以利用。

在这里插入图片描述

Python爬虫视频资料

在这里插入图片描述

三、数据分析

清华大学经管学院发布的《中国经济的数字化转型:人才与就业》报告显示,2025年,数据分析人才缺口预计将达230万。

这么大的人才缺口,数据分析俨然是一片广阔的蓝海!起薪10K真的是家常便饭。

在这里插入图片描述

四、数据库与ETL数仓

企业需要定期将冷数据从业务数据库中转移出来存储到一个专门存放历史数据的仓库里面,各部门可以根据自身业务特性对外提供统一的数据服务,这个仓库就是数据仓库。

传统的数据仓库集成处理架构是ETL,利用ETL平台的能力,E=从源数据库抽取数据,L=将数据清洗(不符合规则的数据)、转化(对表按照业务需求进行不同维度、不同颗粒度、不同业务规则计算进行统计),T=将加工好的表以增量、全量、不同时间加载到数据仓库。

在这里插入图片描述

五、机器学习

机器学习就是对计算机一部分数据进行学习,然后对另外一些数据进行预测与判断。

机器学习的核心是“使用算法解析数据,从中学习,然后对新数据做出决定或预测”。也就是说计算机利用以获取的数据得出某一模型,然后利用此模型进行预测的一种方法,这个过程跟人的学习过程有些类似,比如人获取一定的经验,可以对新问题进行预测。

在这里插入图片描述

机器学习资料:

在这里插入图片描述

六、Python高级进阶

从基础的语法内容,到非常多深入的进阶知识点,了解编程语言设计,学完这里基本就了解了python入门到进阶的所有的知识点。

在这里插入图片描述

到这就基本就可以达到企业的用人要求了,如果大家还不知道去去哪找面试资料和简历模板,我这里也为大家整理了一份,真的可以说是保姆及的系统学习路线了。

在这里插入图片描述
但学习编程并不是一蹴而就,而是需要长期的坚持和训练。整理这份学习路线,是希望和大家共同进步,我自己也能去回顾一些技术点。不管是编程新手,还是需要进阶的有一定经验的程序员,我相信都可以从中有所收获。

一蹴而就,而是需要长期的坚持和训练。整理这份学习路线,是希望和大家共同进步,我自己也能去回顾一些技术点。不管是编程新手,还是需要进阶的有一定经验的程序员,我相信都可以从中有所收获。

资料领取

这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以点击下方微信卡片免费领取 ↓↓↓【保证100%免费】
或者

点此链接】领取

好文推荐

了解python的前景:https://blog.csdn.net/SpringJavaMyBatis/article/details/127194835

了解python的兼职副业:https://blog.csdn.net/SpringJavaMyBatis/article/details/127196603

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值