人工智能系列-Python面向对象编程

🌈个人主页:羽晨同学 

💫个人格言:“成为自己未来的主人~”   

 面向对象编程和面向过程编程

在使用计算机语言进行代码编写时,常见的两种思路是面向对象编程和面向过程编程。

面向过程:根据业务逻辑从上到下写代码。

面向对象:将数据和函数绑定在一起,分类进行封装,每个程序员只要负责分配到自己的分类,这样能够更快速地开发程序,减少了重复代码。

封装:

在面向对象编程中有三个至关重要的思想,分别是封装,继承和多态,封装中注意的概念就是类和对象了,类和对象是两种以计算机为载体的计算机语言的合称,

  • 类:类是一个抽象概念,在现实世界中不存在。
  • 类本质上是在现实世界中具有共同特征的事物,通过提取这些共同特征形成的概念叫做类
  • 对象:对象是一个具体的概念,在现实世界中是具体存在的。
  • 抽象:将具有相同特征的对象抽取共同特征的过程叫做抽象。
  • 实例化:对象还有一个别名叫做:实例。通过类创建对象的过程叫做实例化。

继承

在现实生活中,继承一般指的是子女继承父辈的财产,在程序中,继承的概念就要简单得多了,即描述的是事物之间的所属关系,例如猫和狗属于动物,程序中便可以描述为猫和狗继承自动物。

所谓多继承,即子类有多个父类,并且具有它们的特征。

多态

在编程语言和计算机科学当中,多态是一个非常重要的概念,在Python中,多态指的是不同的对象类型可以以相同的方式进行操作。

子类型多态,当一个子类继承自一个父类,并且重写和拓展了父类的方法,我们就可以说这个子类是多态的,在运行时,子类对象可以替换父类对象。

class Aniaml:
    def make_sound(self):
        return "some generic sound"
class Dog(Aniaml):
    def make_sound(self):
        return "wangwang"
class Cat(Aniaml):
    def make_sound(self):
        return "miaomiao"
def animal_sound(animal):
    print(animal.make_sound())
a=Aniaml()
d=Dog()
c=Cat()
animal_sound(a)
animal_sound(d)
animal_sound(c)

 

多态的优点

代码复用:可以写出更加通用的代码,这些代码可以与多种类型一起工作,

拓展性:通过多态,你可以轻易地添加新的类型,而无需修改现有的代码

可维护性:具有良好多态性的代码通常更容易理解和维护

多态是Python和许多其他面向对象编程语言中一个非常强大和有用的特性。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/781646.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GDP播放器 驱动视频播放器 PHP 系统源码 v4.4.3

最重要的是我们自己开发了源代码,因此无论您在使用此工具时遇到什么问题,我们都会快速解决。这个版本演示 分别支持PHP7.4/8.1/8.2三个版本 演示地址

大华DSS user_toLoginPage.action命令执行漏洞

免责声明 本文章仅做网络安全技术研究使用!严禁用于非法犯罪行为,请严格遵守国家法律法规;请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者无关。使用本文所提供的信息或工具即视为同意本免责声明&…

华为云简介

前言 华为云是华为的云服务品牌,将华为30多年在ICT领域的技术积累和产品解决方案开放给客户,致力于提供稳定可靠、安全可信、可持续创新的云服务,赋能应用、使能数据、做智能世界的“黑土地”,推进实现“用得起、用得好、用得放心…

µCOS-III 任务同步机制-任务信号量

1. 什么是任务信号量 任务信号量是一种用于任务间同步和通信的计数器,通常用于解决任务间的竞争条件和资源共享问题。在C/OS-III中,任务信号量提供了二进制信号量和计数信号量两种类型: 二进制信号量:只能取值0或1,适…

昇思12天

FCN图像语义分割 1. 主题和背景 FCN是由UC Berkeley的Jonathan Long等人于2015年提出的,用于实现图像的像素级预测。 2. 语义分割的定义和重要性 语义分割是图像处理和机器视觉中的关键技术,旨在对图像中的每个像素进行分类。它在很多领域有重要应用…

ImportError: DLL load failed while importing _imaging: 操作系统无法运行 %1

解决方案: (1)搜索打开Anaconda Prompt控制台,进入到自己要安装的环境下面去,卸载Pillow:pip uninstall Pillow 没有安装Pillow的就不用卸载,直接安装, (2)然后再安装&a…

[优化算法]梯度下降法-凸函数的收敛性

文章目录 1. 三个条件2. 二次上界引理3. 证明 1. 三个条件 f f f 有下界,可微,凸函数 ∇ f \nabla f ∇f是 Lipschitz连续步长 α ∈ ( 0 , 1 L ] \alpha \in (0,\frac{1}{L}] α∈(0,L1​] 则 { f ( x k ) } \{ f(x_k) \} {f(xk​)} 以 O ( 1 k ) \m…

53-1 内网代理3 - Netsh端口转发(推荐)

靶场还是用上一篇文章搭建的靶场 :52-5 内网代理2 - LCX端口转发(不推荐使用LCX)-CSDN博客 一、Netsh 实现端口转发 Netsh是Windows自带的命令行脚本工具,可用于配置端口转发。在一个典型的场景中,如果我们位于公网无法直接访问内网的Web服务器,可以利用中间的跳板机通过…

人工智能写作对话系统源码 自然语言的处理能力 前后端分离 带完整的安装代码包以及搭建教程

系统概述 随着互联网信息爆炸式增长,用户对于高质量、个性化内容的需求日益增长,而传统的内容生成方式已难以满足这一需求。另一方面,深度学习和自然语言处理技术的突破性进展,为人机交互提供了新的可能。本项目正是在此背景下应…

使用OpenCV与PySide(PyQt)的视觉检测小项目练习

OpenCV 提供了丰富的图像处理和计算机视觉功能,可以实现各种复杂的图像处理任务,如目标检测、人脸识别、图像分割等。 PyQt(或PySide)是一个创建GUI应用程序的工具包,它是Python编程语言和Qt库的成功融合。Qt库是最强大的GUI库之一。Qt的快速…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【明文导入密钥(C/C++)】

明文导入密钥(C/C) 以明文导入ECC密钥为例。具体的场景介绍及支持的算法规格 在CMake脚本中链接相关动态库 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)开发步骤 指定密钥别名keyAlias。 密钥别名的最大长度为64字节。 封装密钥属性集和密钥材料。通过[OH_Huks_I…

linux RTC时钟时间出现了明显的偏移

RTC时钟时间出现了明显的偏移 1、开发环境2、问题阐述3、验证问题3.1、首先去排查了硬件电路和芯片电压不稳定的问题。3.2、晶振的问题。3.3、芯片本身3.4、芯片寄存器 4、代码修改 1、开发环境 平台:imx6ul kernel版本:linux4.1.5 RTC芯片:…

18_特征金字塔网络FPN结构详解

1.1 简介 在深度学习领域,尤其是计算机视觉和目标检测任务中,Feature Pyramid Networks (FPN) 是一种革命性的架构设计,它解决了多尺度特征检测和融合的关键问题。FPN最初由何凯明等人在2017年的论文《Feature Pyramid Networks for Object …

【MySQL】4.MySQL 的数据类型

MySQL 的数据类型 一.数据类型分类在这里插入图片描述二.注意点1.char VS varchar2.datetime VS timestamp3.enum 和 set 的使用方法 一.数据类型分类 二.注意点 1.char VS varchar char 的意义是直接开辟固定大小的空间,浪费磁盘空间,但是效率高varcha…

通过串口烧录keil程序到GD32F103C

插好GD32F103C单片机电源线,将单片机和电脑用串口连接起来 ,串口芯片是CH340,打开设备管理器,出现感叹号 这是由于没有安装CH340串口驱动 CH340系列USB转串口驱动 win7/win10 64位 打开属性,显示:由于 W…

SHAP(SHapley Additive exPlanations)基于XGBoost模型的可解释机器学习

模型可解释性 这是一个关于错误解释机器学习模型的危险以及正确解释它的价值的故事。如果您发现诸如梯度提升机或随机森林之类的集成树模型的鲁棒准确性很有吸引力,但也需要解释它们,那么我希望您发现这些信息有用且有帮助。 试想一下,我们…

【项目管理】常见的敏捷实践:Scrum框架

【项目管理】常见的敏捷实践:Scrum框架 精益、敏捷与Scrum框架Scrum框架实践Sprint(冲刺)Scrum角色Scrum工件Scrum会议 精益、敏捷与Scrum框架 敏捷与精益思想、看板、Scrum等概念的关系如下图所示: Lean 精益 Kanban 看板 Ag…

永磁同步电机控制算法--扇区细分的直接转矩控制(十八扇区)

优化转矩磁链调节器和开关表可降低转矩脉动,改善直接转矩控制性能。有研究仔细分析了传统永磁同步电机六扇区 DTC 方案中空间电压矢量对磁链与转矩轨迹的作用过程发现,随着定子磁链在扇区内位置的变化,电压矢量对磁链与转矩的作用是不均衡的&…

centos7|操作系统|低版本的OpenSSH升级到最新版本OpenSSH-9.8.p1

前言: 1、 OpenSSH是什么 OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都…