魔术方法是python内置方法,不需要主动调用,存在的目的是为了给python的解释器进行调用,几乎每个魔法方法都有一个对应的内置函数,或者运算符,当我们对这个对象使用这些函数或者运算符时就会调用类中的对应魔法方法,可以理解为重写这些python的内置函数。
在Python中,像__getitem__这种由两个双下划线构成的方法,统一被称为魔术方法。魔术方法是属于类的方法,都是针对类来进行操作。也就是说**不需要实例化类就可以访问到该方法
**,同时,实例化的对象都可以访问到该方法。
比如当使用len(function)时,实际上调用的就是object.__len__方法。而在使用function[‘key’]的形式来访问元素时,实际上调用的是object.getitem(key)方法。
使用__getitem__和__len__方法,我们就可以实现一个对自定义数据类型的迭代和访问。