摘要:
生成器是一种用普通的函数语法定义的迭代器。任何包含yield语句的函数称为生成器。生成器在每次调用next()的时候执行,遇到yield语句返回,再次执行时就从上次返回的yield语句处继续执行。但是我们创建一个生成器以后,基本上不会调用next()方法,而是通过for循环来迭代它。 nested 阅读全文
摘要:
迭代的意思是重复做一件事很多次,就像在循环中做的那样。如果一个对象实现了__iter__方法,就可以对对象进行迭代。 __iter__方法会返回一个迭代器,所谓的迭代器就是具有next方法的对象。next方法不需要任何参数,调用next方法时,迭代器会返回他的下一个值。如果next方法被调用,但是迭 阅读全文
摘要:
@property @property @property装饰器可以把一个方法变成属性调用。 举一个例子,对学生成绩进行设置和查询。通过set_score来设置成绩,get_score来获取成绩。这样的不方便之处就是不像直接用属性那么方便。 class Student(object): def ge 阅读全文
摘要:
魔法方法是指用__ __包起来的方法,可以不直接调用方法或者调用其它函数时会调用到对应的魔法方法。这种拼写表示名字有特殊含义,不要在自己的程序中使用这种名字。先对魔法方法的几个特点强调一下: 魔法方法定义在class中; 不需要直接调用; Python的某些函数或者操作符会调用对应的魔法方法。 魔法 阅读全文