函数的迭代
1.函数名的使用: 返回函数名的时候不能加括号
#可以把函数名作为值赋给变量
def func():
print(666)
a = func
a()
#可以把函数名当成元素放到容器里
def func():
print(1)
def func1():
print(1)
l = [func,func1]
for i in l:
i()
2.闭包:
满足条件:#是一个嵌套函数
#嵌套函数的内层函数使用外层的非全局变量
判断是否是闭包方法:#函数名.__closure__,结果不是None就是闭包
闭包的优点:#会进行内存驻留,普通函数执行完后会销毁;安全
#缺点:会出现内存泄漏
3.迭代器:
前提条件,是可迭代对象:#可以被for循环和具有.__iter__方法的就是可迭代独享
创建一个迭代器:
可迭代对象.__iter__()
迭代器具有:__iter__和__next__的方法
迭代器的特性:
惰性机制
不能从下往上
一次性的,用完就没了
类似于for的机制:
l = [1,2,3,4]
a = l.__iter__()
while 1:
try:
print(a.__next__())
except StopIteration:
break
4.递归:
自己调用自己本身
要有明确结束条件
count = 0
def func():
global count
count += 1
print(count)
if count == 500:
return
func()
func()

浙公网安备 33010602011771号