zoukankan      html  css  js  c++  java
  • 装饰器的修复wraps,偏函数partial 以及chain

    将被装饰的函数的一些属性值赋值给 装饰器函数,最终让属性的显示更符合我们的直觉。



    from
    functools import wraps def wapper(func): @wraps(func) # 帮助我们设置函数的元信息 def inner(*args, **kwargs): return func(*args, **kwargs) return inner @wapper def f1(): pass @wapper def f2(): pass print(f1.__name__) #不加wraps装饰器修复,__name__都为inner print(f2.__name__) #加上wraps修复后还是原来函数的信息

    偏函数

    from functools import partial
    
    
    # 偏函数
    def foo(a1, a2):
        print(a1, a2)
    
    
    # 相当于给函数foo默认传递了一个参数,再次调用时不必再传这个函数
    new_func = partial(foo, 1)
    new_func(2)
    
    # 1 2

    chain

    from itertools import chain
    
    
    # chain的作用就是链接
    def v1(x):
        return x
    
    
    v2 = [44, 55, 66]
    
    foo = chain([v1], v2)  # 参数必须是可迭代对象
    print(type(foo))  # <class 'itertools.chain'>
    for item in foo:
        if callable(item):
            print(item(1))
        else:
            print(item)
        # 1
        # 44
        # 55
        # 66
  • 相关阅读:
    JVM和HotSpot
    java中的四种引用类型
    垃圾回收与算法
    Full GC
    JVM内存结构
    事务不同的隔离级别实现原理
    事务的隔离级别
    jQuery后续和 前端框架Bootstrap
    jQuery
    BOM和DOM操作
  • 原文地址:https://www.cnblogs.com/zhoujunhao/p/8617817.html
Copyright © 2011-2022 走看看