函数名的使用 和 闭包 和 迭代器

函数名就是一个变量名

函数名可以作为参数传给函数

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

猜你喜欢

转载自www.cnblogs.com/Little-Raccoon/p/10833484.html