python 三大神器

迭代器
1.1、判断可迭代对象
1.2、自定义迭代器
自定义迭代器对象: 在类里面提供iter和next方法创建的对象就是迭代器。
2、生成器
2.1 生成器创建方式1
把列表推导式的中括号改成小括号创建的对象就是生成器。生成器:生成器是一个特殊的迭代器,也就是说可以使用next和for循环取值。
2.2 生成器创建方式2
在def里面看到yield关键字表示就是一个生成器。
3、装饰器
3.1闭包
1、在一个函数里边定义了一个函数
2、内函数可能会用到外函数的数据
3、外函数一定有返回值,而且是内函数的引用

# 外函数outer()
def outer():
    # 外函数局部变量,对于内函数来说相当于全局变量
    number = 10
    # 内函数   
    def inner():
        # 外函数数据的引用      
        nonlocal number     
        number += 1
    # 返回值是内函数inner的引用
    return inner        

# 调用outer函数,用func接收inner函数的引用
func = outer()
# 调用inner函数     
func()  

1、装饰器定义:
闭包的延伸,外函数传入函数的引用,而且内函数返回函数的调用就是装饰器
2、作用:
在不修改函数体的前提下,在函数前面添加功能比如验证等
3、原理:
直接调用内函数,先执行内函数函数体,即验证的部分,在内函数的返回值的地方返回传入函数的调用,即不被修改的函数体。

def outer(func):
    def inner():
        return func()
    return inner
# 装饰器的使用  @ :相当于 func = outer(func) 
# 即把func的引用替换成outer的返回值,也就是内函数的引用
# 然后在内函数中返回原本func的引用的调用,即func的函数体
@outer
def func():
    pass
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容