闭包

什么是闭包?

闭包就是内层函数对外层函数的变量的引用

内层函数对外层变量(非全局变量)的引用

我们使用__closure__来检测函数是否闭包,使用函数名__closure__返回东西就是闭包,返回None就不是闭包

内层函数对外层变量(非全局变量)的引用

那么如何在函数外边调用内部函数呢?

内层函数对外层变量(非全局变量)的引用

使用闭包的好处:

 使变量常驻内存(保证变量不会消亡)

 

 

迭代器

什么是迭代器?

遵循可迭代协议的对象

 内层函数对外层变量(非全局变量)的引用

我们偶尔会碰到这样的报错信息,注意看---->'int' object is not iterable.翻译过来就是整数类型对象是不可迭代的,iterable表示可迭代的,表示可迭代协议,那么如何进行验证数据类型是否符合可迭代协议,我们可以通过dir函数来产看类中定义好的所有方法.

 

我们试着打印这句话:

内层函数对外层变量(非全局变量)的引用

在打印结果中,我们试着寻找__iter__,如果能找到,那么这个类的对象就是可迭代对象

内层函数对外层变量(非全局变量)的引用

接着我们继续实验以下类型的数据.

我们发现这些数据类型里面全部都有__iter__,那么这就意味着它们全部遵循可迭代协议

内层函数对外层变量(非全局变量)的引用

那么我们可以确定的是,只要里面包含__iter__的就是可迭代的

 

相关文章:

  • 2022-12-23
  • 2021-07-12
  • 2021-10-08
  • 2021-10-31
  • 2021-11-30
  • 2022-02-16
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-08-08
  • 2021-12-26
  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案