python基础——迭代器 闭包

迭代器跟生成器的区别就是: 生成器写成小括号  或者yield函数  的方式 。   迭代器包含两个方法__iter__可以将一个可迭代对象转换成一个生成器,__next__方法是获取下一个值。
class ss:
    def __init__(self,star=0,end=0):
        self.star=star
        self.end=end
    def __iter__(self):
        return self
    def __next__(self):
        if self.star<self.end:
            i = self.star
            self.star += 1
            return i
        else:
            raise StopIteration()
a=ss(0,5)
print(a.__next__())     输出结果:  0
print(a.__next__())                1
print(a.__next__())                2

闭包就是把一个函数的函数体和上下文语句封装在另一个函数里 :

def fun(x):
    print("。。1。。")
    def name(y):
       return x*y
    print("。。2。。")
    return name
x=fun(6)
print(x(3))    输出结果: 。。1。。
                         。。2。。
                         18
fun 会一直记录着一个参数, 使用的时候只需要传一个参数就好


猜你喜欢

转载自blog.csdn.net/pythonzyj/article/details/80855884