函数的迭代

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()

            

posted @ 2019-03-16 15:18  socoolonly1  阅读(368)  评论(0)    收藏  举报