Python魔法方法、属性和迭代器详解
129 浏览量
更新于2024-08-03
收藏 188KB PDF 举报
Python基础教程(第2版)第九章魔法方法、属性和迭代器
本节内容主要介绍了Python中的魔法方法、属性和迭代器。魔法方法是Python中的一种特殊方法,用于实现对象的初始化、析构、属性访问和迭代等功能。
一、新式类
在Python中,有两种类:新式类和旧式类。新式类是Python 2.2以后引入的,具有许多新的特性,如属性和super函数。新式类可以通过三种方式来实现:
1. 在文件的开始处赋值语句`__metaclass__=type`。
2. 直接或间接地子类化内建类object(或其他一些新式类)。
3. 在自己的类的作用域中对`__metaclass__`变量赋值。
在Python 3中,没有“旧式”的类,也不需要显式地子类化object或者将元类设置为type,所有的类都会隐式地成为object的子类。
二、构造方法
构造方法是Python中的一种特殊方法,用于初始化新创建对象的状态。构造方法的名称是`__init__`,它在对象被创建后立即被调用。例如:
```
class FooBar:
def __init__(self):
self.somevar = 42
f = FooBar()
print(f.somevar) # 42
```
对应的,Python中还有一个析构方法`__del__`,它会在对象被垃圾回收之前被调用。由于该方法的调用时间是不可知的,因此要尽量避免使用。
三、方法重写
每个类都可能拥有一个或多个超类,当一个子类的对象调用某个方法(属性)但在子类中没有找到该方法时,会去它的超类中寻找。我们可以重写一些超类的方法来自定义继承的行为。例如:
```
class A:
def hello(self):
print("Hello, I'm A")
class B(A):
def hello(self):
print("Hello, I'm B")
a = A()
b = B()
a.hello() # Hello, I'm A
b.hello() # Hello, I'm B
```
构造方法也可以进行重写,但是相比于普通方法,它可能会遇到特别的问题。
小虾仁芜湖
- 粉丝: 105
- 资源: 9354
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器