当前位置: 首页 > news >正文

五、面向对象

文章目录

  • 面向对象/过程
    • 面向对象
    • 面向过程
  • 类和对象
    • 对象
  • 代码设计
    • 定义类
    • 创建对象
      • 添加属性
      • 获取属性
    • 调用方法
      • 魔法方法
        • `__init__()` 构造方法
        • `__str__()`
        • `__del__()` 析构方法

面向对象/过程

面向对象

谁来做,注重结果

面向过程

怎么做,注重过程

类和对象

抽象概念,泛指具有相同或相似特征和行为的事物

  1. 类名:大驼峰命名法
  2. 属性:事物的特征
  3. 方法:事物的行为

对象

具体概念,特指某一个事物

代码设计

定义类

使用class关键字定义类,类中的函数即为方法

class namedef func(self):
		pass

self是普通形参,但调用时没有传递实参值。在执行代码时自动将调用这个方法的对象传递给self,因为self的本质是对象。如下图示例
在这里插入图片描述

创建对象

使用类名()创建对象,要通过变量名保存对象地址,变量=类名()

添加属性

类内部,self.属性名=属性值,在类中添加属性通常写在__int__()中
类外部,对象.属性名=属性值,一般不使用

获取属性

类内部,self.属性名
类外部,对象.属性名

调用方法

使用对象.方法名()调用方法

魔法方法

双前导双末尾下划线的方法,在满足条件时会自动调用,如__init__()

__init__() 构造方法

创建对象之后自动调用

  1. 给对象添加属性
  2. 创建对象必须执行的代码,用于初始化
  3. 如果有self以外的形参,要注意形参传递
__str__()

使用print(对象)打印对象时自动调用

  1. 关于对象的属性信息
  2. 若类中没有定义该方法,print(对象)是默认输出对象的内存地址
  3. 必须返回字符串
__del__() 析构方法

删除对象时自动调用

  1. 代码执行结束,所有对象都会被删除
  2. 使用del 对象可以删除对象,若一个对象存在多个引用,则需要删除所有引用才可彻底删除对象
class Person:
	def __init__(self,name,weight):
		self.name=name
		self.weight=weight
	def __str__(self):
		return f'{self.name}的体重是{self.weight}kg'
	def __del__(self):
		print('代码结束,删除对象')
	def run(self):
		self.weight=self.weight-0.5
	def eat(self):
		self.weight=self.weight+1
		
a=Person('小明',75)
print(a)
a.run()
print(a)
a.eat()
print(a)

在这里插入图片描述

相关文章:

  • hibernate 自动生成数据库表和java类 字段顺序不一致 这导致添加数据库数据时 异常
  • XEasyWork:面向AI应用的可视化工作流开发平台
  • Billu_b0x靶场:一场关于网络安全的技术冒险
  • 如何在WordPress中添加下载链接?
  • 通过 TTL 识别操作系统的原理详解
  • AI编程方法案例:PageRank算法实现
  • 大数据(1.1)纽约出租车大数据分析实战:从Hadoop到Azkaban的全链路解析与优化
  • 【经验】重装OpenCV踩雷
  • Unity 获取Game窗口分辨率
  • 深度革命:ResNet 如何用 “残差连接“ 颠覆深度学习
  • 将 YOLO 格式的标注文件(.txt)转换为 VOC 格式的 XML 标注文件
  • 使用 Promise 和 .then() 解决同异步问题
  • IT工具 | node.js 进程管理工具 PM2 大升级!支持 Bun.js
  • 3D标定中的平面约束-平面方程的几何意义
  • Django CSRF验证失败请求为什么会中断?
  • 51单片机的寻址方式(完整)
  • CherryStudio + 火山引擎DeepSeek R1 告别服务器繁忙
  • R语言使用dietaryindex包计算nhanes饮食炎症指数
  • 【路由系列】BGP
  • 使用 CryptoJS 实现 AES 解密:动态数据解密示例
  • 要更加冷静地看待“东升西降”的判断
  • 上海“世行对标改革”的税务样本:设立全国首个税务审判庭、制定首个税务行政复议简易程序
  • 2025柯桥时尚周启幕:国际纺都越来越时尚
  • 马克思主义理论研究教学名师系列访谈|董雅华:让学生感知马克思主义理论存在于社会生活中
  • 比特币价格时隔三个月再度站上10万美元
  • 中国国家电影局与俄罗斯文化部签署电影合作文件