python核心编程(二)

python面向对象

  • 一、基本理论
  • 二、 面向对象在python中实践
    • 2.1 如何去定义类
    • 2.2 通过类创建对象
    • 2.3 属性相关
    • 2.4 方法相关
  • 三、python对象的生命周期,以及周期方法
    • 3.1 概念
    • 3.2 监听对象的生命周期
  • 四、面向对象的三大特性
    • 4.1 封装
    • 4.2 继承
      • 4.2.1 概念
      • 4.2.1 目的
      • 4.2.2 分类
      • 4.2.3 type和object区分
      • 4.2.4 继承下的影响
      • 4.3 多态

一、基本理论

	1.什么是对象?万物皆为对象,对象是具体的事物:1. 拥有属性2. 拥有行为3. 把很多零散的东西,封装为一个整体2. python中体现:python是一门特别彻底的面向对象编程(OOP)的语言3. 面向过程&面向对象都是解决问题的思路面向过程:在解决问题的时候,关注的是解决问题的每个过程(步骤)面向对象:在解决问题的时候,关注的是解决问题所需要的对象对比:1. 面向对象和面向过程都是解决问题的一种方式(思想)		面向对象本身是对面向过程的封装2. 面向过程编程最重要的是按照步骤划分,把一个任务,分解成具体的每一个步骤3. 面向对象编程最重要的是划分不同的对象,之后去确定对象的属性和行为4. 如何从面向过程编程思想,过渡到面向对象编程?4.1 先列举出一个任务的具体实现的步骤4.2	试图分离这些实现步骤的功能代码块4.3 将这些功能代码块,划分到某一个对象中4.4 根据整个对象以及对应的行为,抽象出对应的类4.4.1 类:某个具体对象特征的抽象4.2 类的作用:根据抽象的类,生产具体的对象4.3 类的组成:名称属性方法注意:以上属性和方法,都是抽象的概念在产生对象之后,对象才用于具体的属性值,和方法实现对象和类的关系:对象可以抽象为类,类可以实例化对象

二、 面向对象在python中实践

2.1 如何去定义类

class 类名: pass 里面的pass表示一个空语句,为了去保证整个结构的一个完整

2.2 通过类创建对象

变量=类名() 进行实例化

2.3 属性相关

	1. 属性相关1.1 属性和变量的区别及判定依据?区别:1. 概念:变量是”可以改变的量值“属性是”属于某个对象的特性“2. 访问权限:变量:根据不同的位置,存在不同的访问权限属性:只能通过对象来进行访问判定依据:是否存在宿主2. 对象属性2.1  怎样让一个对象拥有一些属性?()1. 直接通过对象,动态添加	对象.属性 =2. 通过类的初始化方法(构造方法)	__init__方法2.2 怎样访问或者修改一个对象的属性?(,)通过对象.属性来进行查询,如果之前没有就是查询,有的话就是修改2.3 怎样删除一个对象的属性?()del 对象.属性补充:查看对象所有属性 对象.__dict__3. 类属性3.1 怎样让一个类拥有属性?()方式1:类名.类属性 = 值方式2:在类里面直接写上变量名3.2 怎样让一个类拥有属性?()方式1:通过类访问,类名.类属性方式2:通过对象访问,对象.类属性注意:通过对象访问到类属性,是和python对象的属性查找机制有关,优先到对象自身去查找属性,找到则结束;如果没有找到,则根据_class_找到对象对应的类,到这个类里面去找。3.3 怎样让一个类拥有属性?()方式1:类名.属性 = 值方式2:对象.__class__.属性 =3.4 怎样让一个类拥有属性?()通过类名删除,del 类名.属性,但是不能通过对象删除,del 语句只删除直系属性。

2.4 方法相关

	1. 方法的概念:描述一个目标的行为动作。2. 方法的划分:2.1 实例方法	默认第一个参数需要接收到一个实例2.2 类方法	默认第一个参数需要接收到一个类2.3 静态方法		第一个参数啥也不默认接收3. 实例方法3.1 标准调用使用实例调用实例方法, 不用手动传,解释器会自动把调用对象本身传递过去。3.2 其他调用1. 使用类调用2. 间接调用4. 类方法4.1 标准调用可以通过类或者用例来调用4.2 其他调用利用子类进行调用5. 静态方法既可以使用类调用或者用例调用补充:实例属性只能通过实例,类属性的话,既可以通过实例或者类进行访问。

三、python对象的生命周期,以及周期方法

3.1 概念

生命周期:指一个对象,从诞生到消亡的过程当一个对象被创建时,会在内存中分配相应的内存空间进行存储当这个对象不再使用,为了节约内存,就会把这对象释放

3.2 监听对象的生命周期

	1. __new__方法当我们创建一个对象时,用于给这个对象分配内存的方法,通过拦截这个方法,可以修改对象的创建过程,比如:单例设计模式2. __init__方法对象创建完成之后,会调用init方法3. __del__方法

四、面向对象的三大特性

4.1 封装

  1. 概念
    将一些属性和相关方法封装都一个对象中,对外部隐藏内部具体实现细节。
  2. 好处
    • 使用起来更加方便
    • 保证数据的安全
    • 有利于代码维护

4.2 继承

4.2.1 概念

继承:一个类“拥有”另外一个类的“资源”的方式之一。

  1. 拥有:并不是资源的复制,变为双份资源,而是资源的“使用权”。
  2. 资源:指“非私有的”属性和方法。

4.2.1 目的

继承的目的就是为了方便资源重用。

4.2.2 分类

  1. 单继承:仅仅继承了一个父类。
  2. 多继承:继承了多个父类。

4.2.3 type和object区分

在这里插入图片描述

4.2.4 继承下的影响

	1. 资源的继承明确:在python中,继承是指资源的使用权,所以,测试某个资源能否被继承,其实就是测试在子类当中,能不呢个访问父类中的这个资源。结论:除了私有的属性和私有的方法,其他基本上都能继承。2. 继承的下的影响2.1 继承几种形态单继承链无重叠的多继承链有重叠的多继承链2.2 几种形态应该遵循的标准规则2.2.1 单继承遵循“从上到下的原则”,自己身上没有这个资源,就到父类里面去找,父类再没有,再往上走。2.2.2 无重叠的多继承按照继承的先后次序,优先调用左侧继承链上的属性或者方法.2.2.3 有重叠的多继承遵循“从上到下的原则”。2.3 资源的覆盖(属性和方法)在MRO的资源检索链当中,优先级比较高的类写了一个和优先级比较低的类一样的一个资源(属性或方法),到时候,再去获取相关资源,就会优先选择优先级比较高的资源,而摒弃优先级比较低的资源,造成“覆盖”的假象

4.3 多态

	多态:一个类,所延伸的多种形态。调用时多种形态:在继承的前提下,使用不同的子类,调用父类的同一个方法,产生不同的功能。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring boot打的包直接运行

Spring Boot 提供了一个插件 spring-boot-maven-plugin 把程序打包成一个可执行的jar包&#xff0c;直接执行java -jar xxx.jar即可以启动程序 1、引用 spring-boot-maven-plugin插件 <build><plugins><plugin><groupId>org.springframework.boot<…

使用 Supabase 的 Realtime + Storage 非常方便呢

文章目录 &#xff08;一&#xff09;Supabase&#xff08;二&#xff09;Realtime&#xff08;消息&#xff09;&#xff08;2.1&#xff09;Python 消息订阅&#xff08;2.2&#xff09;JavaScript 消息订阅 &#xff08;三&#xff09;Storage&#xff08;存储&#xff09;&…

CI/CD:持续集成/持续部署

1. 安装docker、docker-compose # 安装Docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sed -i sdownload.docker.commirrors.aliyun.com/docker-ce /…

『ZJUBCA Weekly Feed 07』MEV | AO超并行计算机 | Eigen layer AVS生态

一文读懂MEV&#xff1a;区块链的黑暗森林法则 01 &#x1f4a1;TL;DR 这篇文章介绍了区块链中的最大可提取价值&#xff08;MEV&#xff09;概念&#xff0c;MEV 让矿工和验证者通过抢先交易、尾随交易和三明治攻击等手段获利&#xff0c;但也导致网络拥堵和交易费用增加。为了…

c++(四)

c&#xff08;四&#xff09; 运算符重载可重载的运算符不可重载的运算符运算符重载的格式运算符重载的方式友元函数进行运算符重载成员函数进行运算符重载 模板定义的格式函数模板类模板 标准模板库vector向量容器STL中的listmap向量容器 运算符重载 运算符相似&#xff0c;运…

Android刮刮卡自定义控件

效果图 刮刮卡自定义控件 import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PorterDuff; import …

Linux--进程间通信(1)(匿名管道)

目录 1.了解进程通信 1.1进程为什么要通信 1.2 进程如何通信 1.3进程间通信的方式 2.管道 2.1管道的初步理解 2.2站在文件描述符的角度-进一步理解管道 2.3 管道的系统调用接口&#xff08;匿名管道&#xff09; 2.3.1介绍接口函数&#xff1a; 2.3.2编写一个管道的代…

AI Agent教育行业落地案例

【AI赋能教育】揭秘Duolingo背后的AI Agent&#xff0c;让学习更高效、更有趣&#xff01; ©作者|Blaze 来源|神州问学 引言 随着科技的迅猛发展&#xff0c;人工智能技术已经逐步渗透到我们生活的各个方面。而随着AI技术的广泛应用&#xff0c;教育培训正引领着一场新的…

微软语音使用小计

简介 使用微软语音可以实现语音转文字和文字转语音。测试了下&#xff0c;使用还是挺方便的。 使用微软语音有两种方式。一种是使用命令行的形式&#xff0c;另一种是调用SDK的方式。 适合使用语音 CLI 的情况&#xff1a; 想在极少设置且无需编写代码的情况下试验语音服务…

Vulnhub靶机 whowantsobeking :1 打靶 渗透详细过程(萌新)

Vulnhub靶机搭建配置 先搭建vulnhub靶机&#xff1a;https://www.vulnhub.com/entry/who-wants-to-be-king-1,610/ 下载镜像之后whowantsobeking.ova后&#xff0c;用VMware Workstation Pro打开依次点击文件-打开&#xff0c;选择我们刚才下载的ova文件打开&#xff0c;修改…

JavaWeb开发 2.Web开发 Web前端开发 ①介绍

内心一旦平静&#xff0c;外界便鸦雀无声 —— 24.5.27 一、初识Web前端 网页有哪些部分组成? 文字、图片、音频、视频、超链接 ...网页&#xff0c;背后的本质是什么? 前端代码前端的代码是如何转换成用户眼中的网页的? 通过浏览器转化(解析和渲染)成用户看…

表空间[MAIN]处于脱机状态

达梦数据库还原后&#xff0c;访问数据库报错&#xff1a;表空间[MAIN]处于脱机状态 解决方法&#xff1a; 1&#xff1a;检查备份文件 DMRMAN 中使用 CHECK 命令对备份集进行校验&#xff0c;校验备份集是否存在及合法。 ##语法&#xff1a;CHECK BACKUPSET <备份集目录…

小识MFC,一套设计优雅与不优雅并存的类库----小话MFC(2)

Q1&#xff1a; CPoint继承于POINT&#xff0c;这样有什么好处&#xff1f; A&#xff1a; 继承的一个最基本的好处当然就是减少代码量。CPoint和POINT内部数据一样&#xff0c;只是一个提供了更多的方法来操作对象。 typedef struct tagPOINT {LONG x;LONG y; } POINT, *P…

小程序大能量:盲盒平台搭建与营销策略

一、引言 在移动互联网的浪潮下&#xff0c;小程序以其轻量级、即用即走的特点&#xff0c;成为了商家与消费者沟通的新桥梁。盲盒经济作为近年来兴起的消费趋势&#xff0c;结合小程序平台&#xff0c;不仅为用户带来了全新的购物体验&#xff0c;也为商家带来了更多的商业机…

【管理咨询宝藏115】某大型电力集团5年战略发展报告终稿

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏115】某大型电力集团5年战略发展报告终稿 【格式】PDF版本 【关键词】战略规划、大型国企、战略报告 【核心观点】 - 战略领导人敏锐的直觉和城…

【乐吾乐3D可视化组态编辑器】模型类型与属性

编辑器地址&#xff1a;3D可视化组态 - 乐吾乐Le5le 本章主要为您介绍模型的属性功能。 一个模型至少会包含一个节点&#xff08;Node&#xff09;&#xff0c;从节点类型上可以分为转换节点&#xff08;TransformNode&#xff09;、网格&#xff08;Mesh&#xff09;、实例网…

5.27作业

定义自己的命名空间my_sapce&#xff0c;在my_sapce中定义string类型的变量s1&#xff0c;再定义一个函数完成对字符串的逆置。 #include <iostream> #include <string.h>using namespace std; namespace my_space {string s1;void RevString(string &s1); } v…

OrangePi AIpro 开箱初体验及语音识别样例

OrangePi AIpro 开箱初体验及语音识别样例 一、 前言 首先非常感谢官方大大给予这次机会&#xff0c;让我有幸参加此次活动。 OrangePi AIpro联合华为精心打造&#xff0c;采用昇腾AI技术路线&#xff0c;具体为4核64位处理器AI处理器&#xff0c;集成图形处理器&#xff0c;…

【JavaScript】P3 JavaScipt 注释方法、结束符、输入输出

小结&#xff1a; Js 注释&#xff1a; 单行注释&#xff1a;//多行注释&#xff1a;/* */ Js 结束符&#xff1a; 分号; 可以加也可以不加 Js 输入输出&#xff1a; 输入&#xff1a;prompt()输出&#xff1a;document.write() 在页面中打印&#xff0c;console.log() 在控制…

浅谈金融行业数据安全分类分级

数据安全管理是一项从上而下的、多方配合开展的工作。在进行数据安全管理组织架构建设时&#xff0c;需要从上而下建设&#xff1b;从而全面推动数据安全管理工作的执行和落地&#xff1b;以保证数据安全的合法合规、并长效推动业务的发展和稳定运行。 金融行业机构应设立数据…