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 = 0
    gender = 0
    height = 0
    weight = 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('短视频')

# 执行结果
# 跑步
# 吃苹果
# 看短视频

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

总结

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

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

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

相关文章

【离散数学】——期末刷题题库(树其一)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

【Midjourney中文目录】Midjourney产品使用说明

Midjourney使用说明 Midjourney是一款开发出来的智能绘画工具&#xff0c;它利用先进的AI技术为用户提供快速、高效、多样化的绘画体验。 Midjourney软件以其独特的特色和功能赢得了广大用户的喜爱。首先&#xff0c;它能够快速生成AI制图&#xff0c;只需输入关键字&#xf…

无懈可击的防泄密之旅:迅软DSE在民营银行的成功实践

客户简要介绍 某股份有限公司主体是中部地区的民营银行&#xff0c;由其母公司联合9家知名民营企业共同发起设立。正式开业于2016年&#xff0c;紧紧围绕目标产业生态圈和消费金融&#xff0c;着力打造产业银行、便捷银行、数字银行、财富管理银行为一体的BEST银行&#xff0c…

C#深拷贝效率对比

对于浅拷贝和深拷贝&#xff0c;前面的文章已经说明了。 C#浅拷贝和深拷贝数据-CSDN博客 本篇说一下&#xff0c;深拷贝的效率问题&#xff0c;效率一直是程序追求的&#xff0c;效率越高肯定越好&#xff0c;有时候功能是实现了&#xff0c;但是运行以及处理数据的效率非常低…

【算法系列篇】递归、搜索和回溯(四)

文章目录 前言什么是决策树1. 全排列1.1 题目要求1.2 做题思路1.3 代码实现 2. 子集2.1 题目要求2.2 做题思路2.3 代码实现 3. 找出所有子集的异或总和再求和3.1 题目要求3.2 做题思路3.3 代码实现 4. 全排列II4.1 题目要求4.2 做题思路4.3 代码实现 前言 前面我们通过几个题目…

idea恢复默认出厂设置

idea恢复默认出厂设置 1、IDEA 2021 之后&#xff0c; 在顶部工具栏&#xff0c;选择 File | Manage IDE Settings | Restore Default Settings. 2、或者双击shift搜索Restore Default settings然后点击restore and restart

企业微信无法给Gmail发邮件问题

问题说明 在使用企业微信给国外客户的Gmail邮箱发信件的时候&#xff0c;邮件一直被退信&#xff0c;退信内容如下&#xff1a; 发件人&#xff08;*******.cn&#xff09;域名的DNS记录未设置或设置错误导致对方拒收此邮件。 host gmail-smtp-in.l.google.com[142.251.175.2…

左右按钮实现滚动轮播Demo(js手搓版本)

提示&#xff1a;适用于当放置按钮空间区域有限&#xff0c;通过左右箭头实现有限空间放置更多的按钮的情形&#xff0c;自适应布局的简单Demo支持二次开发和改造 文章目录 效果图Demo源码解释说明总结 效果图 在该区域存在五个按钮&#xff0c;点击左边按钮向左边滚动&#xf…

查看git的帮助信息

说明 在cmd窗口、或者git Bash shell下执行git --help或者git -h命令&#xff0c;可以查看git的帮助信息。 执行git <command> --help命令可以查看某个命令的帮助信息&#xff0c;其中<command>表示某个具体的命令。 示例1&#xff1a;在git Bash shell下运行git…

新能源线束电接头气密测试快速工装

线束气密测试是新能源车生产过程中必须要测试流程&#xff0c;包括常规的电缆测试、电接头测试、接线端子测试等。需要用到相应的快速接头来密封连接线束一端&#xff0c;进行充气或封堵&#xff0c;并连接上检漏仪等相关设备&#xff0c;检查产品密封防水合格性。 线束快速密封…

Vue3 Element Plus自定义年份区间选择组件

环境&#xff1a; "dependencies": {"rollup/plugin-alias": "^3.1.9","types/node": "^17.0.43","element-plus": "^2.2.15","three": "^0.148.0","vue": "^3.2.…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Button按钮组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Button按钮组件 一、操作环境 操作系统: Windows 10 专业版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、Button按钮组件 Button 组件也是基础组件之一&#xff0c;和其它基础组件不…

【深度学习】Prompt

1.Prompt的通俗解释 Prompt就是“提示”的意思&#xff0c;通俗解释可以参考你画我猜游戏。如下图所示&#xff1a;提示词就作为Prompt&#xff0c;指导对方说出正确答案。而自然语言处理任务中的Prompt也有同样的效果&#xff0c;指导模型输出正确的答案。 2.Prompt的不通俗解…

【密码学】群的证明(习题)

0.前置知识 1.习题 记录一次密码学作业~群的判定 2.求解

Linux发行版比较:Ubuntu、CentOS、Red Hat与其他系统的优劣分析

导言 Linux作为开源操作系统&#xff0c;有众多不同的发行版&#xff0c;每个发行版都有其独特的特性和适用场景。本文将聚焦于比较Ubuntu、CentOS、Red Hat和其他系统&#xff0c;深入分析它们的优势、用途以及在不同领域的应用。Linux操作系统的生态系统中&#xff0c;Ubuntu…

传输层—TCP核心机制(确认应答、超时重传、三次握手四次挥手、滑动串口等……)

传输层—TCP核心机制 ​ 文章目录 传输层—TCP核心机制TCP1.1 确认应答机制 (可靠传输机制)1.2 超时重传机制 (可靠传输机制)1.3 连接管理机制 (可靠传输机制)1.3.1 三次握手&#xff08;建立连接&#xff09;1.3.2 四次握手&#xff08;断开连接&#xff09; 1.4 滑动窗口 (提…

如何使用示波器探头对被测电路进行检测

对电路信号进行检测之前首先要知道被测电路是什么电路&#xff0c;被测信号是什么信号。盲目地测试或者使用不正确的测量方法&#xff0c;有可能得到错误的波形甚至损坏仪器危及安全。 1、什么是差分信号&#xff1f;什么是单端信号&#xff1f; 差分传输是一种信号传输的技术…

Selenium自动化测试框架(超详细总结分享)

设计思路 本文整理归纳以往的工作中用到的东西&#xff0c;现汇总成基础测试框架提供分享。 框架采用python3 selenium3 PO yaml ddt unittest等技术编写成基础测试框架&#xff0c;能适应日常测试工作需要。 1、使用Page Object模式将页面定位和业务操作分开&#xff…

SecureCRT for Mac/win强大安全的终端SSH工具,SecureCRT助您网络连接无忧

在当今数字化时代&#xff0c;网络连接已成为生活和工作中不可或缺的一部分。而对于需要进行远程访问和管理的用户来说&#xff0c;一个稳定、安全的终端SSH工具是至关重要的。SecureCRT作为一款强大的终端SSH工具&#xff0c;为用户提供了安全、高效的远程连接解决方案。 首先…

如何压缩视频发邮件?帮你整理了几个必备的!

不同邮件附件上限大小有所不同&#xff0c;QQ邮箱的附件大小限制为2GB&#xff0c;这意味着用户可以发送最大为2GB的视频文件&#xff1b;Gmail邮箱的附件大小限制为25MB&#xff1b;163邮箱的附件大小限制为2GB&#xff0c;但是为了保证文件传输的成功率&#xff0c;建议最好不…