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
  • 相关阅读:
    兼容ie10及以上css3加载进度动画
    MySQL的安装
    VSFTPD+MYSQL+PAM
    58.省市联动-json
    省市联动
    56.检验特殊字符
    55.全选2
    54.截取字符串的思想实现输入框字数限制
    网络截取文件名
    lastPathComponent的功能
  • 原文地址:https://www.cnblogs.com/zhoujunhao/p/8617817.html
Copyright © 2011-2022 走看看