Python面向对象基础:定义类、对象与属性

0 下载量 164 浏览量 更新于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面向对象编程的基本概念和常用技巧,包括类的定义、对象的创建与操作、面向对象的特性以及如何利用这些特性来设计和实现复杂的程序结构。理解并熟练运用这些知识,将有助于编写出更高效、更易于维护的代码。