zoukankan      html  css  js  c++  java
  • Python的functools模块

    partial

    用于创建一个偏函数,将默认参数包装一个可调用对象,返回结果也是可调用对象。
    偏函数可以固定住原函数的部分参数,从而在调用时更简单。

    from functools import partial
    
    int2 = partial(int, base=8)
    print(int2('123'))
    # 83

    wraps

    warps 函数是为了在装饰器拷贝被装饰函数的__name__
    就是在update_wrapper上进行一个包装

    from functools import wraps
    def wrap1(func):
    	@wraps(func)	# 去掉就会返回inner
    	def inner(*args):
    		print(func.__name__)
    		return func(*args)
    	return inner
    
    @wrap1
    def demo():
    	print('hello world')
    
    print(demo.__name__)
    # demo
    

    update_wrapper

    使用 partial 包装的函数是没有__name____doc__属性的。
    update_wrapper 作用:将被包装函数的__name__等属性,拷贝到新的函数中去。

    from functools import update_wrapper
    def wrap2(func):
    	def inner(*args):
    		return func(*args)
    	return update_wrapper(inner, func)
    
    @wrap2
    def demo():
    	print('hello world')
    
    print(demo.__name__)
    # demo
    天道酬勤 循序渐进 技压群雄
  • 相关阅读:
    MySQL数据库命令行界面不支持中文
    mysqldump使用方法(MySQL数据库的备份与恢复)
    MySQL性能测试初试(1)--sysbench
    composer安装
    Java关键字[static].md
    Docker容器
    Docker概述及安装
    Docker镜像
    定时任务[crontab]
    Linux下的curl工具
  • 原文地址:https://www.cnblogs.com/wuyuan2011woaini/p/14865968.html
Copyright © 2011-2022 走看看