闭包
什么是闭包?
闭包就是内层函数对外层函数的变量的引用
我们使用__closure__来检测函数是否闭包,使用函数名__closure__返回东西就是闭包,返回None就不是闭包
那么如何在函数外边调用内部函数呢?
使用闭包的好处:
使变量常驻内存(保证变量不会消亡)
迭代器
什么是迭代器?
遵循可迭代协议的对象
我们偶尔会碰到这样的报错信息,注意看---->'int' object is not iterable.翻译过来就是整数类型对象是不可迭代的,iterable表示可迭代的,表示可迭代协议,那么如何进行验证数据类型是否符合可迭代协议,我们可以通过dir函数来产看类中定义好的所有方法.
我们试着打印这句话:
在打印结果中,我们试着寻找__iter__,如果能找到,那么这个类的对象就是可迭代对象
接着我们继续实验以下类型的数据.
我们发现这些数据类型里面全部都有__iter__,那么这就意味着它们全部遵循可迭代协议
那么我们可以确定的是,只要里面包含__iter__的就是可迭代的