在Python中,所有以 “_ _“ 双下划包起来的方法称为“魔法方法” 魔法方法Python解释器自动给出默认的,因此除非需要改变其内部功能,其它时刻刻使用默认魔法方法
最常用三个:"_init"、"_new"、"_del_"
_new是用来创建类并返回这个类的实例, _init将传入的参数来初始化该实例,以及初始化示例属性,与new共同构成了“构造函数” _del_将实例化后的对象销毁,即为析构函数
类调用:call
_call_允许一个类像函数一样被调用
属性访问:getattr、setattr、delattr
_getattr访问对象不存在的属性时,调用该方法,用于定义访问行为 _setattr设置对象属性时调用 _delattr_删除对象属性时调用
上下文管理器:_enter和_exit
这两个方法请看上面第3题。
迭代器方法:_iter_和\__next__
_iter_:返回一个容器迭代器,很多情况下会返回迭代器,尤其是当内置的iter()方法被调用的时候,以及当使用for x in container:方式循环的时候。迭代器是它们本身的对象,它们必须定义返回self的iter方法。 _next_:返回迭代器的下一个元素