python学习之旅(十五)

发布时间:2019-04-10 20:53:14编辑:auto阅读(1802)

    Python基础知识(14):函数(Ⅴ)

    一、装饰器

    decorator:本质上就是函数,可以增强函数的功能。

    定义起来虽然有点复杂,但使用起来非常灵活和方便

    1、不修改被装饰函数的源代码

    2、不修改被装饰函数的调用方式

    3、装饰函数对被装饰函数透明

    import functools
    def log(text):
        def decorator(func):
            @functools.wraps(func)
            def wrapper(*args, **kw):
                print('%s %s():' % (text, func.__name__))
                return func(*args, **kw)
            return wrapper
        return decorator
    
    @log('execute')
    def now():
        print('2015-3-25')
    
    
    结果:    
    now()
    execute now():
    2015-3-25

     

    二、偏函数

    functools.partial:把一个函数的某些参数给固定住(即设置默认值),返回一个新的函数,调用这个新函数会更简单

    #int函数使用参数base=?,把字符串中的进制数按照对应的进制转成十进制数,默认按照十进制数进行转换
    int("30")
    30
    
    int("1010",base=2)
    10
    
    int("12",base=8)
    10
    
    int("30",base=10)
    30
    
    int("30",base=16)
    48

    使用functools.partial创建一个偏函数用来把二进制数转换成十进制数

    import functools
    int2=functools.partial(int,base=2)
    int2("10")
    2

    当函数的参数个数太多,需要简化时,使用functools.partial可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单

     

    资料来源:

    廖雪峰官网:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318435599930270c0381a3b44db991cd6d858064ac0000

关键字