函数名就是一个变量名
函数名可以作为参数传给函数
def my(): print('我是my') def proxy(fn): # 代理模式,装饰器 print('在处理之前') fn() print('在处理之后') proxy(my) # 在处理之前 # 我是my # 在处理之后
def func(): print('我是func') a =10 def inner(): print('我是inner') return inner func()() # 先运行func() 然后在返回值上加() # 结果为: 我是func 我是inner
闭包:在内层函数中访问外层函数的变量
闭包的作用:
1.可以保护你的变量不受侵害
2.可以让一个变量常驻内存
def outer(): a =10 # 对外界是不开放的,常驻内存,为了inner执行的时候有值 def inner(): print(a) inner() outer()
迭代器
dir(str) # dir 查看xx类型的数据可以执行哪些方法
可迭代对象可以使用__iter__()来获取到迭代器
迭代器里面有__next__()
特点
1.只能向前
2.几乎不占用内存,节省内存
3.for循环
lst = ['小白','小李','小花','小明','小龙'] it = lst.__iter__() while True: try: el = it.__next__() print(el) except StopIteration: break