python面向对象

一文秒懂Python面向对象 在类定义中, 阅读详情

一、面向过程和面向对象

1.面向过程:是一种以事件为中心的编程思想,更关注过程。简单的问题可以用面向过程的思路来解决,直接有效,但是当问题的规模变得更大时,用面向过程的思想是远远不够的。所以慢慢就出现了面向对象的编程思想。

优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:不易维护、复用和拓展
2.面向对象:世界上的每个人或事务都能看成一个对象,每个对象都有自己的属性和行为,对象与对象之间通过方法来交互。面向对象是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。

优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点:性能比面向过程低
3.扩展:高内聚、低耦合

①内聚:模块内部的代码,例如方法,变量,对象,或者是功能模块。相互之间的联系越强,内聚就越高,模块的独立性就越好。一个模块应该尽量的独立,去完成独立的功能

②耦合:模块与模块之间有些操作是有关联的,例如水桶效应,一个水桶若是有一块木板比其他木板短,那么这个水桶装的水也就会相应减少,因此模块与模块之间的关系越是紧密,独立性就越不好,就容易产生连锁反应

③模块:就是将大型系统的复杂问题,分成不同的小模块,去处理问题

二、类和对象

1.类:

①定义:类是抽象的,在使用的时候通常会找到这个类的一个具体的存在,使用这个具体的存在。一个类可以找到多个对象

②构成:三部分

类的名称:类名
类的属性:一组数据
类的方法(行为):允许对其进行操作的方法
③举例:人类

名称:人
属性:姓名、身高、年纪
方法:吃饭、睡觉、上厕所
④抽象类:拥有相同(或者类似)属性和行为的对象都可以抽像出一个类

⑤举例:小明在公交车上牵着一只叼着热狗的狗

小明 --- 人类
公交车 --- 交通工具类
热狗 --- 实物类
狗 --- 狗类
⑥格式:

说明:

  • object是Python里所有类的最顶级父类
  • 类名的命名规则按照"大驼峰命名法"
  • cat和dog是实例方法
  • 第一个参数一般是self,表示实例对象本身,也可以使用其它的名字,其作用是设置一个变量,这个变量指向了实例对象

 

 

 

三.魔法方法:

1.介绍:Python的类里提供的,两个下划线开始,两个下划线结束的方法,就是魔法方法

2.__init__():

①定义:

__init__()就是一个魔法方法,通常用来做属性初始化或赋值操作,在实例化对象的时候会被自动调用
__init__(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递过去。
如果类面没有写__init__方法,Python会自动创建,但是不执行任何操作
一个类里无论自己是否编写__init__方法一定有__init__方法

 

 

 

 

 

Python——面向对象 阅读详情

相关推荐

emWin嵌入式GUI图像显示优化:GIF/PNG解码与内存管理实战

在嵌入式系统开发中,图形用户界面(GUI)的流畅显示是提升用户体验的关键。图像解码与渲染是GUI的核心技术环节,其效率直接影响系统响应速度和资源占用。GIF和PNG作为两种广泛应用的图像格式,分别以其动画支持和透明通道特性,在嵌入式界面中扮演重要角色。理解其解码原理,例如GIF的LZW算法和PNG的滤波与Alpha混合机制,是进行性能优化的基础。通过流式处理(Ex函数)技术,可以避免将整个图像文件加载至RAM,从而显著降低对连续大内存块的需求。结合内存设备(Memory Device)的缓存策略,能够将耗时

weixin_30902251的博客 1627

python 面向对象

面向对象的基本介绍】 面向过程编程最最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程的思路是将数据与函数按照执行的逻辑顺序组织中一起,数据与函数分开考虑; 《小总结》面向对象和面向过程都是解决为题的一种思路,面向对象是基于面向过程的,一般情况下我们是用面向对象的思维解决问题的,这种解决问题的思路我们就叫做面向过程, 《举列吃鸭子》面向过程:1、养鸭子2、鸭子成长3、杀鸭子4、清理鸭子,准备佐料5、烹饪、6、吃鸭子 面向对象:1、找一个卖鸭子的2、交易给钱3、迟到鸭子 【类和对象】面向

weixin_52781385的博客 5993

嵌入式GUI图像显示优化:JPEG、GIF、PNG解码内存管理与实战

在嵌入式系统开发中,图形用户界面(GUI)的图像显示是提升用户体验的关键技术。其核心原理涉及图像压缩与解码,通过JPEG、GIF、PNG等格式在有限的硬件资源(如RAM、CPU)下实现高效渲染。这些技术的价值在于平衡视觉质量与系统性能,广泛应用于智能家居、工业HMI、便携医疗设备等场景。针对嵌入式环境,内存优化成为重中之重,例如通过流式读取(如emWin的DrawEx API)避免大文件完整加载,并利用内存设备(Memory Device)缓存频繁使用的图像以提升绘制效率。本文聚焦于emWin图形库,深入解

dianzongfan5428的博客 458

Python基础—面向对象(超详版)

面向对象是一种编程范式,它将程序中的数据和操作封装在一个对象中,从而使得程序更加模块化、可重用和易于维护。在面向对象编程中,对象是类的实例化,类是一种抽象的数据类型,它定义了一组属性和方法。面向对象编程的核心思想是封装继承和多态。封装是将数据和操作封装在一个对象中,隐藏对象的内部实现细节,只暴露必要的接口给外部访问。继承是通过继承父类的属性和方法,来创建一个新的子类,子类可以重写父类的属性和方法,从而实现更加灵活的功能。多态是指同一个方法可以根据不同对象的实现方式,实现不同的行为。

weixin_50804299的博客 2万+

Python面向对象详解(非常详细)

面向对象编程(Object-Oriented Programming,OOP)是一种常用的编程思想,它强调万物皆对象,因此在编程时我们可以将现实世界中的事物抽象成程序中的对象,从而更好实现软件的设计与开发。与传统的基于函数的编程不同,面向对象编程注重于将数据与行为封装在一起,即对象既包含数据状态,还包含可调用的行为方法。面向对象编程的特点在于,它具有封装、继承和多态三大特性。封装意味着将对象的状态和行为进行封装,使其对外只暴露必要的接口,从而提高了安全性和可维护性;

ZTLJQ的博客 3万+

深入解析LodePNG库中的PNG解码示例

LodePNG是一个轻量级的PNG图像编解码库,完全用C语言编写,不依赖任何外部库。本文将通过分析`example_decode.c`文件,详细讲解如何使用LodePNG库进行PNG图像解码的三种不同方法。 ## PNG解码基础 PNG(便携式网络图形)是一种无损压缩的位图图形格式,广泛应用于网页和图像处理领域。LodePNG库提供了简单易用的API来解码PNG文件,将其转换为原始的像素数据。

gitblog_00015的博客 591

Unity Sprite Atlas元数据自动化:PNG tEXt块与AssetPostprocessor实践

在游戏开发中,精灵图集(Sprite Atlas)是优化2D游戏性能、减少Draw Call的常用技术。其核心原理是将多个零散图片合并为一张大图,通过一次绘制调用完成渲染。然而,传统工作流存在一个痛点:从美术工具(如Pixel Dream Workshop、Aseprite)导出PNG时,关键的元数据(如轴心点Pivot、九宫格边框、动画帧标签)会丢失,导致在Unity中需要大量手动配置,效率低下且易错。为解决此问题,可以利用PNG文件格式的tEXt或zTXt块作为“隐藏车厢”来承载结构化元数据。通过编写外

weixin_30596023的博客 394

Flutter 三方库 to_png 的鸿蒙化适配指南 - 视觉瞬间的永恒定格、在鸿蒙端实现 Widget 高保真截图实战

在进行 Flutter for OpenHarmony 的社交分享、电子凭证生成或者是长图拼接类应用开发时,如何将精心设计的 UI 布局(Widget)完美、无损地转化为一张可保存或可发送的 PNG 图片是一项核心技术挑战。由于涉及到渲染树(Layer Tree)的捕获与字节流转换,传统的截屏方案往往难以处理非全屏的特定区域。to_png库提供了一套极简的 API 封装。本文将带你在鸿蒙端侧构建一套“所见即所得、像素级还原”的高效图像导出体系。to_png的核心逻辑是基于 Flutter 原始的机制。

lady_mumu的博客 2841

python | 基础学习(五)面向对象

文章目录一、面向对象的基本概念1、面向对象2、类和对象(1)类(2)对象(3)定义简单的类(4)创建对象(5)增加属性(6)`dir(函数名)` 查看函数的属性和方法①初始化方法__init__②在初始化方法内部定义属性③形参,使代码更灵活④__del__⑤__str__方法二、面向对象的三大特性1、面向对象封装应用1:Yilia的体重应用2:摆放家具应用3:士兵突击(1)身份运算符`is`、`is not`(2)私有属性和私有方法(3)伪私有属性和私有方法(科普)2、继承3、单继承(1)语法:(2)与继承

qq_44250700的博客 6434

Python面向对象(全套)

面向对象即把一件事物为对象进行编程,每个对象都有属性和方法 类:是对一些具有相同特征和行为的事物的分类,它是抽象的 对象:它是类的实例化,是具体的 面向对象的三大特征:封装 继承 多态

Thewei666的博客 4599

Python面向对象基础

Python面向对象

m0_70882914的博客 2817

Python----Python高级(面向对象:对象,类,属性,方法)

Python----Python高级(面向对象:对象,类,属性,方法)

weixin_64110589的博客 3030

Python学习】面向对象(OOP)

Python中,使用 `class` 关键字定义一个类。class Dog:# 类属性# 初始化方法(构造函数)self.name = name # 实例属性self.age = age # 实例属性# 实例方法# 实例方法通过学习类和对象、继承和多态、以及特殊方法和运算符重载,咱可以掌握Python面向对象编程的核心概念。这些知识将帮助咱编写更模块化、可重用和可维护的代码。

aaaa_hsjsueu的博客 1200

Python面向对象详解(一篇足矣)

本文介绍了面向对象的基本概念:对象、self、成员(类变量和实例变量)、方法(绑定方法、类方法、静态方法)、属性(绑定方法 + 特殊装饰器 组合)。面向对象的三大特性:封装、继承、多态;除此之外对继承进行了扩展:mro和c3算法,内置函数的补充;异常处理等等。

小峰编程 5610

Python面向对象详解

Python面向对象详解

隔壁王叔的博客 3076

Python】系列之面向对象编程

对象(class)是一种抽象的概念,上面定义的对象Person,指的就是学生这个概念,而实例(instance)则指一个个具体的对象,例如上面的张三丰和l张无忌就是两个具体的Person,也就是实例从上面的案例可以看出,面向对象的程序设计思想其实就是抽象出对象(class),然后根据对象创建实例(instance)最后,面向对象的抽象程度比函数高,因为一个对象既包含数据,也包含操作数据的方法,封装、继承、多态是面向对象的三大特点。

康师傅没有眼泪 6448

python基础——面向对象

最近看到一篇非常深奥的算法源码,发现它的底层逻辑全部都是由类实现的,而这种实现方式有非常大的好处,同样对于编程人员来讲,这种实现方式无疑增加了难度和挑战。没有受过系统训练的编程人员,常规的思路与编程习惯基本上都会是面向过程编程,很明显这种方式较为简单,但问题是这种思维方式,一旦遇到变换后其后期维护比较困难。由哪一个类创建出来的对象,就拥有哪一个类中定义的:属性、方法。在程序开发中,先有类,再有对象(类似于先有图纸,再有实物)

不曾走远的博客 728
上一篇: python 文件操作和异常的处理
下一篇: python面向对象继承.私有化
deodar.
博客等级 码龄6年 12粉丝 40原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值