Python 面向对象(1)

 软件编程的实质是将我们的思维转变成计算机能够识别语言的一个过程。

目录

面向过程

面向对象

理解面向对象

面向过程:

面向对象:

面向对象的特点

完成需求时:

类的设计

类与对象的关系

创建类

设计类

类的介绍

格式

创建类实例

定义属性

定义方法

实例化对象

实例化一个对象

多个对象间关系

访问对象的属性和方法

访问属性

访问方法

总结


面向过程

自上而下顺序执行,逐步求精:

其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;

各模块之间的关系尽可能简单,在功能上相对独立

每一模块内部均是由顺序、选择和循环三种基本结构组成;

其模块化实现的具体方法是使用子程序。

程序流程在写程序时就已决定。

面向对象

把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。

对同类对象抽象出其共性,形成类。

类中的大多数数据,只能用本类的方法进行处理。

类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。

程序流程由用户在使用中决定。

理解面向对象

面向对象是相对面向过程而言

面向对象和面向过程都是一种思想

面向过程:

强调的是功能行为

关注的是解决问题需要哪些步骤

面向对象:

将功能封装进对象,强调具备了功能的对象

关注的是解决问题需要哪些对象

面向对象是基于面向过程的

面向对象的特点

是一种符合人们思考习惯的思想

可以将复杂的事情简单化

将程序员从执行者转换成了指挥者

完成需求时:

先要去找具有所需功能的对象来用。

如果该对象不存在,那么创建一个具有所需功能的对象。

类的设计

只关心3样东西

事物名称(类名):人(Person)

属性:身高(height)、年龄(age)

行为(功能):跑(run)、跳(jump)

类与对象的关系

Python中描述事物通过类的形式体现,类具体概念上的定义。

对象即是该类事物实实在在存在的个体.

创建类

设计类

类名:见名知意,首字母大写,其他遵循驼峰原则

属性:见名知意,其他遵循驼峰原则

行为(方法/功能):见名知意,其他遵循驼峰原则

根据以上原则设计一个人类,

如下:

类名:Person
属性:gender age height weight hobby
行为:吃饭 跑步 走路 刷短视频

类的介绍

一种数据类型,本身并不占内存空间,跟所学的number、string、boolean等类似。

用类创建实例化对象(变量),对象占内存空间。

格式

class 类名(父类列表):属性行为

创建类实例

object:基类,超类,所有类的父类;一般没有需要继承的父类就写object

示例如下:

class Person(object):pass

定义属性

定义属性也就是定义类中的变量

示例如下:

class Person(object):# 定义属性(定义变量)name = ''age = 0gender = 0height = 0weight = 0

定义方法

定义类中的函数。根据类的设计写了三个方法分别是:跑步、吃什么、看什么。

注意:方法的参数必须以self为第一个参数,self代表类的实例(某个对象)。

示例如下:

def run(self):print('跑步')def eat(self, food):print('吃', food)def look(self, name):print('看%s' % name)

实例化对象

通过类来实例化对象,然后可通过对象来帮助我们实现想要的功能。

实例化一个对象

示例如下:

person1 = Person()
print(person1)

执行结果:

<__main__.Person object at 0x0000017659E997C8>

多个对象间关系

同一个类实例化多个对象,虽然都是同一个类实例化的对象,但并不是同一个对象。

示例如下:

# 实例化一个对象
person1 = Person()
print(person1)
print(id(person1))# 再实例化一个对象
person2 = Person()
print(person2)
print(id(person2))

执行结果:

<__main__.Person object at 0x000001E595589808>
2085564749832
<__main__.Person object at 0x000001E595589848>
2085564749896

通过打印可看出它们不是一个对象。

访问对象的属性和方法

访问属性

格式:对象名.属性名

赋值:对象名.属性名 = 新的值

示例如下:

p1 = Person()
p1.name = '张三'
p1.age = 18
p1.gender = '男'
p1.height = 180
p1.weight = 80
print(p1.name, p1.age, p1.gender, p1.height, p1.weight)# 执行结果
# 张三 18 男 180 80

访问方法

格式:对象名.方法名(参数列表)

开始访问之前创建类时设定的三个方法。

示例如下:

p1.run()
p1.eat('苹果')
p1.look('短视频')# 执行结果
# 跑步
# 吃苹果
# 看短视频

表示为一个人先跑了一会步,之后开始吃苹果看短视频。

总结

本篇主要介绍了面向过程与面向对象的一些概念,类的设计、实例化对象及访问对象属性和方法。

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

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

相关文章

三勾点餐 | 开源点餐系统、扫码点餐系统、收银台点餐系统

项目介绍 三勾点餐系统基于thinkphp8element-plusuniapp打造的面向开发的小程序商城&#xff0c;方便二次开发或直接使用&#xff0c;可发布到多端&#xff0c;包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。 简单实用…

太阳能供电+4G摄像头搭建EasyCVR鱼塘养殖远程视频监控方案

一、背景需求 随着我国农业的快速发展&#xff0c;以及对新兴技术的应用&#xff0c;养殖业、农牧业、种植业等也面临着全新的挑战与机遇。对鱼塘养殖行业来说&#xff0c;养殖区域面积大、管理难&#xff0c;经常会遇到偷钓者、盗窃鱼苗、非法入侵等监管难题。在国家大力扶持…

【Python机器学习系列】拟合和回归傻傻分不清?一文带你彻底搞懂它

一、拟合和回归的区别 拟合并不特指某一种方法&#xff0c;指的是对一些数据&#xff0c;按其规律方程化&#xff0c;比如把平面&#xff08;一元&#xff09;上一系列的离散点&#xff0c;用一条直线&#xff08;线性&#xff09;或光滑的曲线&#xff08;非线性&#xff09;连…

【解析rosbag可视化】二维图像可视化点云

文章目录 前言一、环境配置二、代码三、效果图 前言 一般我们把采集的原始数据放在 rosbag 中。我们要可视化需要对 bag 包解析二维图像可视化点云思路&#xff1a;在二维图片显示投影的点云就行了 一、环境配置 我用的 python 3.7pip install --extra-index-url https://rospy…

众和策略:短线交易看什么?短线交易看什么指标?

短线交易看什么&#xff1f; 1、k线 当k线出现黄昏十字星、黑乌鸦、乌云盖顶等卖出形状图时&#xff0c;是一种卖出信号&#xff0c;当k线出现早晨十字星、红三兵、等买入形状图时&#xff0c;是一种买入信号。 2、均线 当均线出现死叉、空头摆放时是一种卖出信号&#xff…

ansible ( 2 )

1、command模块 一般用于执行linux命令&#xff0c;不支持管道符和重定向 2、shell模块 相当于command模块的升级版&#xff0c;也可以支持linux命令。支持管道符和重定向 3、cron模块 在远程主机生成定时任务 分 时 日 月 周 minute hour day month weekday job name…

NVMe前世今生

NVMe前世今生 1 NVMe的由来2 NVMe工作原理3 NVMe优点4 NVMe适用场景 本文属于《 NVMe协议基础系列教程》之一&#xff0c;欢迎查看其它文章。 1 NVMe的由来 目前机械硬盘大多数使用 SATA (Serial ATA Advanced Host Controller Interface) 接口&#xff0c;接口协议为 AHCI&a…

鸿蒙-arkTs:开发工具安装

编辑器下载&#xff1a;官网下载地址https://developer.harmonyos.com/cn/develop/deveco-studio/#download 以该版本为例&#xff0c;下载自己电脑对应的系统版本即可&#xff1b; 后续编辑器中的SDK&#xff0c;模拟器等&#xff0c;逐步安装即可&#xff1b; 汉化 编辑器左…

arcgis javascript api4.x加载天地图cgs2000坐标系

需求&#xff1a;arcgis javascript api4.x加载天地图cgs2000坐标系 效果&#xff1a; 示例代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"wid…

C# 实时存储16进制数据,写入文件格式为Raw

1.示例代码 private void button1_Click(object sender, EventArgs e){byte[] data { 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28 }; //模拟要写入的数组List<byte[]> listBytes new List<byte[]>();listBytes.Add(data); //数组转集合RecData(listBytes);…

TensorRT 简单介绍

一、TensorRT 对于算法工程师来说&#xff0c;相信大家已经对TensorRT耳熟能详了&#xff0c;那么这个TensorRT是什么呢&#xff1f; 其实&#xff0c;TensorRT是一个可以在NVIDIA各种GPU硬件平台下运行的推理引擎&#xff0c;同时也是一个高性能的深度学习推理优化器&#x…

自动化测试工具-Selenium:最详细的安装教程

Selenium是一款很不错的自动化测试工具&#xff0c;本文章将按照官方网站的教程进行Selenium的安装&#xff0c;安装之前&#xff0c;首先你要确定你的电脑已配置好Python的环境&#xff0c;没有的话可以参考该文章进行安装&#xff1a;Python纯净式下载与安装-CSDN博客 1. Se…