python学习日记(6)

  • 装饰器
  • 带参数的装饰器
  • 修改属性
  • functoolspartial

装饰器

简而言之,就是用来在不修改原有的函数的情况下添加一些新的功能。
原函数

def test():
    print("test")

修饰器

def decorator(func):
    def wrapper(*args, **kw):
        print("call {}".format(func.__name__))
        return func(*args, **kw)
    return wrapper

使用之

@decorator
def test():
    print("test")

带参数的装饰器

def decorator(text):
    def decorator2(func):
        def wrapper(*args, **kw):
            print("call {0},{1}".format(text, func.__name__))
            return func(*args, **kw)
        return wrapper
    return decorator2
@decorator("wow")
def test():
    print("test")

修改属性

import functools

def decorator(text):
    def decorator2(func):
        @functools.wraps(func)
        def wrapper(*args, **kw):
            print("call {0},{1}".format(text, func.__name__))
            return func(*args, **kw)
        return wrapper
    return decorator2

functools.partial

用来固定函数某些参数

int2 = functools.partial(int, base=2)

你可能感兴趣的:(我的学习日记,python)