Python魔法方法、属性和迭代器详解
102 浏览量
更新于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
```
构造方法也可以进行重写,但是相比于普通方法,它可能会遇到特别的问题。
2023-06-12 上传
2017-12-28 上传
2023-06-12 上传
2023-07-07 上传
2023-09-28 上传
2023-09-06 上传
2024-01-05 上传
2023-07-27 上传
2023-09-08 上传
小虾仁芜湖
- 粉丝: 101
- 资源: 9353
最新资源
- 构建Cadence PSpice仿真模型库教程
- VMware 10.0安装指南:步骤详解与网络、文件共享解决方案
- 中国互联网20周年必读:影响行业的100本经典书籍
- SQL Server 2000 Analysis Services的经典MDX查询示例
- VC6.0 MFC操作Excel教程:亲测Win7下的应用与保存技巧
- 使用Python NetworkX处理网络图
- 科技驱动:计算机控制技术的革新与应用
- MF-1型机器人硬件与robobasic编程详解
- ADC性能指标解析:超越位数、SNR和谐波
- 通用示波器改造为逻辑分析仪:0-1字符显示与电路设计
- C++实现TCP控制台客户端
- SOA架构下ESB在卷烟厂的信息整合与决策支持
- 三维人脸识别:技术进展与应用解析
- 单张人脸图像的眼镜边框自动去除方法
- C语言绘制图形:余弦曲线与正弦函数示例
- Matlab 文件操作入门:fopen、fclose、fprintf、fscanf 等函数使用详解