[toc]

偏函数

固定函数的部分参数

  1. >>> import functools
  2. >>> int2 = functools.partial(int, base=2)
  3. >>> int2('1000000')
  4. 64
  5. >>> int2('1010101')
  6. 85

装饰器decorator

在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。本质上,decorator就是一个返回函数的高阶函数。decorator接受一个函数作为参数,并返回一个函数wrapper。

import functools
# 定义一个在调用函数前输出函数名的decorator
def log(func):
    # 用来确保装饰后的函数名func_name.__name__不变,而不是变成'wrapper'
    @functools.wraps(func)  
    def wrapper(*args, **kw):
        print('call %s():' % func.__name__)
        return func(*args, **kw)
    return wrapper

@log
def now():
    print('2015-3-25')
now()
# 输出 
# call now():
# 2015-3-25

常用内置装饰器

@property装饰器负责把一个方法变成属性调用的
https://www.liaoxuefeng.com/wiki/897692888725344/923030547069856
_@_variable_name.setter
私有变量赋值

Generator、yield、yield from

参考:https://lotabout.me/2017/Python-Generator/
yield的作用:暂停控制流,返回yield后跟的表达式,等待下次调用继续执行,可以用send函数改变上次yield后面跟的表达式的值