python面向对象编程

    🐬在本次的博客当中我们要学习的是在python语言当中的面向对象的编程。我们之前学过的C语言是面向对象的编程。面向过程,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。主要采用的是模块的分解和功能的抽象。而面向对象的程序设计的关键思路就是将数据的操作封装到一起,组成一个相互依存,不可分割的整体,这就是对象。或者简单一点来说:可以将面向对象的编程想象成为一个黑盒,可以完成我们具体的一系列的步骤和功能。或者说对象也像是我们创建的一个新的头文件,我们创建好以后只需要只写引用即可。

    🐬在我们的生活当中每一个事物都可以理解成为是由对象本身的性质和行为构成,举一个简单的例子:一辆汽车可以分成性质:有四个轮子,有方向盘等性质,和行为可以跑,可以倒车等。有性质和行为组成的集合就叫做对象。

    🐬面向对象的程序设计强调的是运用在日常的思维逻辑当中经常采用的思想方式与原则。具有抽象,分类,封装,继承,多态等性质。

    🐟1.抽象

    🐬对于我们面向对象的编程不需要考虑他们的细节。就比如轿车,公交车,卡车,如果不考虑他们之间的差别,去找出他们之间的共性就可以得到车这个概念,这个过程就是从具体到一般,这也就是抽象的过程。

    🐟2.封装

    🐬对于我们面向对象的封装和我们对于数据的封装不同,之前提到的封装思想是将不同类型的数据加到列表里面,这是一种封装的数据层面的封装。把最常用的代码段打包成为一个函数,这也是一种封装,是语句方面的封装。而面向对象的封装是将这两者结合起来构成一个独立的封装体,也就是对象。

    🐟3.对象

    🐬对象是客观世界真实存在的具体实体,具有明确定义的状态和行为。对象可以分成有形的,比如:一本书,一辆车等。也可以是无形的规则,计划或事件,如:记账单,一项纪录等。对象的来源是模拟真实世界,吧数据和代码都封装在一起。

    🐟4.类

   🐬我们将我们之前封装好的对象可以看成一个抽象的集合。或者我们可以将类看成是一个抽象的图纸,我们可以根据这张图纸创建我们需要的具体的内容。

    🐟5.继承

   🐬假如我们根据一张图纸进行设计一个事物。举一个简单的例子:苹果手机的肯定有一张总的设计图纸,他可能会有CPU型号和电池容量等等的信息。我们可以根据这个图纸进行设计物体。但是假如我们想要生产新的物品,那么我们肯定是根据原先的设计图纸进行部分的修改即可。那么我们继承上一个物体的特点的性质就叫做继承。

    🐟6.多态

    🐬多态性是指不同类型的对象接收相同的消息时产生不同的行为。这里的消息主要是对类的成员方法的调用,而不同的行为就是指类成员方法的不同的实现。当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算法。

    🐬在python语言当中我们通常使用class关键字定义类,class关键字后面是一个空格。按照通俗来讲,就像是我们众多函数的集合,类的定义的原型为:

     🐬按照代码进行举例: 

    🐬就比如我们定义一个狗类,我们就可以在class Dog当中进一步定义新的内容。

    🐬在python语言当中我们定义的第一个参数必须是self。self参数类似于我们函数当中的形式参数,self的使用的具体的方法:

    🐬我们可以看出,在类的外部,可以通过“对象名.”访问对象的属性和方法,在类的方法内部,可以通过“self.”访问对象的属性和方法。 

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

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

相关文章

Go语言精修(尚硅谷笔记)第十七和十八章

十七、反射 17.1 基本介绍 1 ) 反射可以在运行时动态获取变量的各种信息, 比如变量的类型(type),类别(kind) 2 ) 如果是结构体变量,还可以获取到结构体本身的信息(包括结构体的字段、方法) 3 ) 通过反射,可以修改变量的值,可以…

react脚手架

一、首先了解一下react脚手架 .xxx脚手架: 用来帮助程序员快速创建一个基于xxx库的模板项目 a.包含了所有需要的配置(语法检查、jsx编译devServer…) b.下载好了所有相关的依赖 c.可以直接运行一个简单效果react提供了一个用于创建react项目的脚手架库:…

LLaMA:Open and Efficient Foundation Language Models

LLaMA:Open and Efficient Foundation Language ModelsIntroductionApproachPre-training DataArchitectureIntroduction 在大规模数据下训练的大模型,已经展示了很好的表现,当模型足够大的时,模型会出现一个涌现的能力&#xff…

Chapter8.3:控制系统校正的根轨迹法

该系列博客主要讲述Matlab软件在自动控制方面的应用,如无自动控制理论基础,请先学习自动控制系列博文,该系列博客不再详细讲解自动控制理论知识。 自动控制理论基础相关链接:https://blog.csdn.net/qq_39032096/category_10287468…

区块链技术之密码学

密码学是研究编制密码和破译密码的技术科学,研究密码变化的客观规律,应用于编制密码以保守通信秘密的,成为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。在区块链中重要问题之一就是区块…

锁 一、锁的分类 1.1 可重入锁、不可重入锁 Java中提供的synchronized,ReentrantLock,ReentrantReadWriteLock都是可重入锁。 重入:当前线程获取到A锁,在获取之后尝试再次获取A锁是可以直接拿到的。 不可重入:当前…

Eclipse下载使用手册

Eclipse下载使用手册 目录Eclipse下载使用手册Eclipse的介绍与安装Eclipse简介Eclipse的下载Eclipse的解压Eclipse的介绍与安装 Eclipse简介 Eclipse 是一个开放源代码的,基于 Java 的可扩展开发平台。Eclipse官方版是一个集成开发环境(IDE),可以通过安…

MySQL-自带工具介绍

目录 🍁mysql 🍁mysqladmin 🦐博客主页:大虾好吃吗的博客 🦐MySQL专栏:MySQL专栏地址 MySQL数据库不仅提供了数据库的服务器端应用程序,同时还提供了大量的客户端工具程序,如mysql&a…

Linux安装MySQL5.7MySQL8.0

Linux安装MySQL5.7一、设置yum源并安装1.1 配置rpm仓库1.1.1 更新密钥1.1.2 安装mysql yum库1.2 使用yum进行安装1.3 启动并配置开机启动二、配置MySQL2.1 获取初始密码2.2 登录MySQL2.3 修改root密码2.3.1 设置复杂密码(默认)2.3.2 设置简单的用户密码2.4 授权root用户远程登陆…

蓝桥杯第十四届校内赛(第三期) C/C++ B组

一、填空题 (一)最小的十六进制 问题描述   请找到一个大于 2022 的最小数,这个数转换成十六进制之后,所有的数位(不含前导 0)都为字母(A 到 F)。   请将这个数的十进制形式作…

力扣二叉树题目专题解析

题目分类大纲如下: 二叉搜索树 前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,二叉搜索树是一个有序树。 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空&#x…

滴滴滴,请看MYSQL事务的四大特征(ACID)的实现原理:晓其原理而通其实现。

一.什么是事务的四特征 原子性(Atomicity,或称不可分割性)一致性(Consistency)隔离性(Isolation)持久性(Durability) 接下来,我们将对四大特性的具体概念以及…

java中File转为MultipartFile的问题解决

今天为了需要,把File需要转为MultipartFile,下列代码,编译启动都没有问题 public static MultipartFile getMultipartFile(File file){FileInputStream fileInputStream;MultipartFile multipartFile;try {fileInputStream new FileInputSt…

《JavaEE初阶》计算机网络之网络原理(应用层)

《JavaEE初阶》计算机网络之网络原理(应用层) 文章目录《JavaEE初阶》计算机网络之网络原理(应用层)前言:应用层:自定义应用层协议:如何进行自定义应用层协议自定义应用层协议的格式选择:应用层的现成协议.前言: 本章主要讲解计算机网络原理中的应用层概念以及如何自定义应用层…

centos7 安装photoprism部署私人相册

1、安装docker; 这个是前置条件,也很简单,暂且不表。 2、安装docker-compose; curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose #下载docker-co…

如何让你的blynk服务器随ubuntu系统启动?

昨天在ubuntu系统搭建了blynk服务器,无奈每次重启都要手动去启动,麻烦! 今天就把它加入系统服务里面运行,一劳永逸 首先用WINSCP连接ubuntu在/root/文件夹下新建一个blynk文件夹 把blynk服务器文件放到文件夹中 在/etc/systemd/…

黑马程序员Java教程学习笔记(六)

学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录黑马程序员Java教程学习笔记(六)File概述、File对象创建File类的常用方法方法递归非规律化递归问题:文件搜索IO前置内容&am…

P1003 [NOIP2011 提高组] 铺地毯

题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 �n 张地毯,编号从 11 到 �n。现在将这些地毯按照编号从小到大的顺序平行于…

C语言试题生成与考试系统的设计与实现

当前,网络教学方兴未艾。网上考试已在其中扮演了重要的角色,传统试卷考试方式有待提高。网络教学已从其规范性、科学性及考试工作组织、管理的统一性,影响到教学质量的好坏。基于此,本系统开发实现了基于B/S模式的c试题生成与考试…

经典毕设项目-博客系统(spring boot、spring mvc、mybatis) gitee开源源码

目录 项目背景 核心技术 项目页面设计 注册页面 登录页面 博客列表页 博客详情页 个人博客列表页 个人博客发布页 个人博客修改页 项目模块与需求分析 AOP 处理模块 用户模块 文章模块 项目创建 实现 AOP 模块 实现登录拦截器 拦截器 拦截注册 实现统一数据…
最新文章