写这篇博客的时候我已经看完了前两章了,所以这次是为了温习之前所看的知识。
第一章讲的是Python的魔术方法,所实话我是第一次听到这个名字(我的基础真的很差哈哈哈。)。
学过一点Python的都知道,在编写一个类的时候一般都会有一个__init__(self)这样的初始化函数,这种用函数名前后都用两个下划线组成的函数叫做魔术方法。也叫做dunder method(双下方法)
需要注意的是,魔术方法一般是通过解释器来调用的。
我们可以来看这样的一个类,我会详细的说明魔术方法到底是一个什么东西。
class Array:
def __init__(self,size=32):
self._size = size
self._items = [None] * size
def __getitem__(self,index):
return self._items[index]
def __setitem__(self,index,value):
self._items[index] = value
def __len__(self):
return self._size
def clear(self,value=None):
for i in range(len(self._items)):
self._items[i] = value
def __iter__(self):
for item in self._items:
yield item
这是我自定义的一个抽象数据类型,是一个数组类,我们看到里面的所有的方法除了clear之外全是魔术方法。
当我们输入a = Array()的时候,我们并没有手动调用__i