Python面向对象基础:定义类、对象与属性
75 浏览量
更新于2024-08-28
收藏 119KB PDF 举报
海尔", 500, 800):
self.name = name
self.width = width
self.height = height
def __str__(self):
return f"这是一台{self.name}洗衣机,宽度{self.width}mm,高度{self.height}mm"
def __del__(self):
print(f"洗衣机{self.name}已被销毁")
# 创建对象
haier = Washer()
# 输出对象
print(haier)
# 销毁对象,调用__del__方法
del haier
对象的生命周期
对象从创建到销毁的过程称为生命周期。在Python中,对象的生命周期大致包括以下阶段:
1. 分配内存:通过`类名()`创建对象时,系统首先为对象分配内存空间。
2. 初始化:接着调用`__init__`方法,初始化对象的属性。
3. 使用:对象被创建后,可以通过其属性和方法进行操作。
4. 销毁:当对象不再被引用,且垃圾回收器判断其内存可回收时,会调用`__del__`方法,然后释放内存。
私有属性和私有方法
在Python中,以两个下划线`__`开头的属性或方法被视为私有。私有属性和方法仅在类内部可访问,不能从类的外部直接访问。例如:
```python
class SecretBox:
def __init__(self, secret):
self.__secret = secret
def reveal_secret(self):
print(self.__secret)
box = SecretBox("密码")
# box.__secret # 报错,私有属性不能直接访问
box.reveal_secret() # 可以通过方法访问
```
面向对象特性
1. 封装:隐藏实现细节,提供公共接口供外界交互。如上述`SecretBox`类中的`__secret`属性和`reveal_secret`方法。
2. 继承:子类继承父类的属性和方法,实现代码复用。子类可以覆盖父类的方法,实现特定功能。
3. 多态:不同对象对同一消息做出不同响应。例如,多个子类都实现了父类的某个方法,但具体实现不同。
4. 多继承:一个类可以同时继承多个父类,获得多个父类的属性和方法。
5. 新式类与经典类:Python 2.x中存在经典类和新式类的区别,新式类主要通过继承`object`类来实现,它支持更多的特性,如`__slots__`等。在Python 3.x中,默认所有类都是新式类。
6. 静态方法:不依赖于实例,而是与类本身相关的函数,使用`@staticmethod`装饰器定义。
7. 类方法:类方法是与类相关的函数,而不是实例,使用`@classmethod`装饰器定义,第一个参数通常是`cls`,代表类本身。
通过以上内容,我们可以了解到Python面向对象编程的基本概念和常用技巧,包括类的定义、对象的创建与操作、面向对象的特性以及如何利用这些特性来设计和实现复杂的程序结构。理解并熟练运用这些知识,将有助于编写出更高效、更易于维护的代码。
2021-05-24 上传
2017-12-22 上传
2018-05-12 上传
2022-08-18 上传
2024-10-22 上传
2018-08-27 上传
2024-01-31 上传
2021-09-29 上传
weixin_38713393
- 粉丝: 8
- 资源: 878
最新资源
- 俄罗斯RTSD数据集实现交通标志实时检测
- 易语言开发的文件批量改名工具使用Ex_Dui美化界面
- 爱心援助动态网页教程:前端开发实战指南
- 复旦微电子数字电路课件4章同步时序电路详解
- Dylan Manley的编程投资组合登录页面设计介绍
- Python实现H3K4me3与H3K27ac表观遗传标记域长度分析
- 易语言开源播放器项目:简易界面与强大的音频支持
- 介绍rxtx2.2全系统环境下的Java版本使用
- ZStack-CC2530 半开源协议栈使用与安装指南
- 易语言实现的八斗平台与淘宝评论采集软件开发
- Christiano响应式网站项目设计与技术特点
- QT图形框架中QGraphicRectItem的插入与缩放技术
- 组合逻辑电路深入解析与习题教程
- Vue+ECharts实现中国地图3D展示与交互功能
- MiSTer_MAME_SCRIPTS:自动下载MAME与HBMAME脚本指南
- 前端技术精髓:构建响应式盆栽展示网站