python基础学习笔记——Python基础教程(第2版 修订版)第九章(魔法方法,属性,迭代器)

#构造方法

f=FooBar()
f.init()

f=FooBar

class FooBar:
        def __init__(self):
              self.somvar=42

#重写一般方法和特殊的构造方法

class SongBird(biird):
        def __init__(self):
         super(SongBird.self).__init__()

#迭代器  重复做一些事很多次

class TestIterator:
        value=0
        def __next__(self):
            self.value+=1
            if self.value>10:
                raise StopIteration
                return self.value
        def __iter__(self):
            return self
t1=TestIterator()
list(t1)

#生成器  任何含有yield语句的函数都叫生成器

nested=[[1,2],[2,3],[4]]
def flatten(nested):
    for sublist in nested:
        for element in sublist:
            yield element
for num in flatten(nested):
    print num
 or 
 list(flatten(nested))

#递归生成器 多层嵌套(递归)

 #八皇后问题

posted @ 2017-09-04 14:01  不可叽叽歪歪  阅读(166)  评论(0编辑  收藏  举报