python中的面向对象之类的设计和常用的内置方法

本文对比面向对象与面向过程编程,介绍两者的核心概念、特点及适用场景,并详细讲解类和对象的设计方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、面向对象和面向过程的对比

1、面向对象 oop:object oriented programming
面向对象的基本概念

面向对象的程序设计核心是对象
我们之前学习的编程方式就是面向过程的
面向过程和面向对象,是两种不同的编程方式
对比面向过程的特点,可以更好的了解什么是面向对象

面向对象:--谁来做?
相比较函数,面向对象是更大的封装,根据职责在一个对象中封装多个方法
1)在完成某一个需求前,首先确定职责--要做的事(方法)
2)根据职责确定不同的对象,在对象内部封装不同的方法(多个)
3)最后完成代码,就是顺序的让不同的对象调用不同的方法
特点:
1)注重对象和职责,不同的对象承担不同的职责
2)更加适合对复杂的需求变化,是专门应对复杂项目的开发,提供的固定套路
3)需要在面向过程的基础上,再学习一些面向对象的语法

过程和函数(都是对一段功能的代码进行封装)
过程:是早期的一个编程概念
    过程类似于函数,只能执行,但是没有返回值
函数:不仅能执行,还可以返回结果(return)

2、面向过程:---侧重于怎么做?

面向过程的程序设计的核心是过程
1)把完成某一个需求的 所有步骤 从头到尾 逐步实现
2)根据开发要求,将某些功能独立的代码封装成一个又一个函数
3)最后完成的代码,就是顺序的调用不同的函数
特点:
1)注重步骤与过程,不注重职责分工
2)如果需求复杂,代码会变得很复杂
3)开发复杂项目,没有固定的套路,开发难度很大

二、类和对象

1、类和对象的概念

类:是对一群具有相同特征或行为的事物的一个统称,不能直接使用(比如:飞机制造图纸不能飞上天)
特征:属性
行为:方法
对象:由类创建出来的一个具体的存在,可以直接使用(用图纸制造出来的飞机可以飞上天)

在程序开发中:应该先有类 再有对象

2、类的设计

1)类名:这类事物的名字,满足大驼峰命名法
    大驼峰命名法
        每一个单词的首字母大写
        单词与单词只见没有下划线
2)属性:这个类创建出的对象有什么样的特征
3)方法:这个类创建出的对象有什么样的行为

当一个类定义完成后,要使用这个类来定义对象

语法格式:对象名 = 类名(
定义只包含方法的类
class 类名:
    def 方法1(self):
        pass
    def 方法2(self):
        pass

示例:

运行结果为:

self:哪一个对象调用的方法,self就是哪一个对象的引用

在类封装的方法内部,self就表示当前调用方法的对象自己
调用方法时,程序员不需要传递self参数(但是定义的时候,第一个参数必须是self)
在方法内部:可以通过self.访问对象的属性
在方法内部:可以通过self.调用其他的对象方法

运行结果为:

3、初始化方法

初始化方法:__init__ 是python对象的内置方法
__init__方法是专门用来定义一个类具有哪些属性和方法的

初始化方法
我们现在已经知道了使用 类名( )  就可以创建一个对象
当使用类名( )创建对象时,python的解释器会自动执行以下操作:
    1.为对象在内存中分配空间--创建对象
    2.调用初始化方法为对象的属性设置初始值--初始化方法(__init__)
这个初始化方法就是__init__方法,__init__是对象的内置方法
__init__方法是专门用来定义一个类具有哪些属性的方法

运行结果为:

4、内置方法

1)__del__内置方法

在python中
    当一个对象被从内存中销毁前(把这个对象从内存中删除掉),会自动调用__del__方法
应用场景
__del__如果希望在对象被销毁前,再做一些事情,可以考虑一下__del__方法

del关键字,可以从内存中删除一个对象,del关键字自己调用了__del__方法

2)__str__内置方法

__str__方法:返回对象的描述信息 print 对象

_str__方法:
在python中,使用python输出对象变量,默认情况下,会输出这个变量引用的对象是由哪>一个类创建的对象,以及在内存中的地址(十六进制表示)
如果在开发中,希望使用print输出对象变量时,能够打印自定义的内容,就可以利用__str__这个内置方法了

运行结果为:

3)生命周期的定义

生命周期
一个对象从调用类名()创建,声明周期开始
一个对象的__del__方法一旦被调用,生命周期就结束
在对象的生命周期内,可以访问对象的属性,调用对象的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值