python-functools

python-functools

  • functools-partial

    import functools
    print(dir(functools))
    
    
    #partial函数(偏函数)
    #把一个函数的某些参数设置默认值,反回一个新的函数,调用这个新函数会更简单
    
    def showarg(*args,**kwargs):
        print(args)
        print(kwargs)
    
    p1 = functools.partial(showarg,1,2,3)  #这句话是p1指向了一个新的函数 只不过这个函数调用showarg 并传1,2,3
    
    p1()
    
    p1(4,5,6)
    
    p1(a='python',b='itcast')
    
    print("==================================")
    
    p2 = functools.partial(showarg,a=3,b='linux')
    
    p2()
    
    p2(1,2)
    
    p2(a='python',b='itcast')
    
    # 运行结果
    ['MappingProxyType', 'RLock', 'WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES', 'WeakKeyDictionary', '_CacheInfo', '_HashedSeq', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_c3_merge', '_c3_mro', '_compose_mro', '_convert', '_find_impl', '_ge_from_gt', '_ge_from_le', '_ge_from_lt', '_gt_from_ge', '_gt_from_le', '_gt_from_lt', '_le_from_ge', '_le_from_gt', '_le_from_lt', '_lru_cache_wrapper', '_lt_from_ge', '_lt_from_gt', '_lt_from_le', '_make_key', 'cmp_to_key', 'get_cache_token', 'lru_cache', 'namedtuple', 'partial', 'partialmethod', 'reduce', 'singledispatch', 'total_ordering', 'update_wrapper', 'wraps']
    (1, 2, 3)
    {}
    (1, 2, 3, 4, 5, 6)
    {}
    (1, 2, 3)
    {'b': 'itcast', 'a': 'python'}
    ==================================
    ()
    {'b': 'linux', 'a': 3}
    (1, 2)
    {'b': 'linux', 'a': 3}
    ()
    {'b': 'itcast', 'a': 'python'}
    
  • functools-wraps

    import functools
    
    def note(func):
        '''note function'''
        @functools.wraps(func) #别人查看帮助文档的时候还是test的文档1
        def wrapper():
            '''wrapper function'''
            print('note something')
            return func()
        return wrapper
    
    @note   #@note 等价于  test = note(test)
    def test():
        '''test function'''
        print("I am test")
    
    print(help(test))
    
    # 运行结果
    Help on function test in module __main__:
    
    test()
        test function
    (END)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只因为你温柔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值