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

一、装饰器

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

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

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

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

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄