迭代器跟生成器的区别就是: 生成器写成小括号 或者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 会一直记录着一个参数, 使用的时候只需要传一个参数就好