• 迭代器:可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器iter()方法返回迭代器本身,next()方法返回容器的下一个元素,在结尾处引发StopInteration异常。dict、tuple、list、str等都可以创建迭代器。

  • 生成器:使用 yield 代替return的函数被称为生成器(generator)。调用一个生成器函数,返回一个迭代器对象。每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。

  • 装饰器:本质上是一个函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,它接受一个函数作为参数,并返回一个函数,利用python的@语法来放置

    @classmethod:类方法,第一个参数为cls,表示这个类本身(普通方法第一个参数为self,表示具体实例本身)。调用类方法时不需要将类实例化,直接类名.类方法()。

    @staticmethod:静态方法,不需要实例化,不需要self和cls,就跟使用普通的函数一样,只是封装在类中

    @property:将一个实例方法封装为只读属性,便于访问。定义时只有一个self参数,调用时不需要括号