首页 > 技术文章 > python 函数进阶

emma-zhu 2017-04-27 21:30 原文

1、生成器 generator

1) 定义 g=(x*x for x in range(10))

   用next() 函数获得generator的下个元素的值 generator保存的是算法与list不同

2) def fib(max):
    n, a, b = 0, 0, 1
    while n < max:
        yield b
        a, b = b, a + b
        n = n + 1
    return 'done'
#函数第一次调用next()只会执行到yield,然后再次调用next(),函数从yield后面再次执行到yield...

3) sen()与next()

区别:sen()可以传递参数给yield表达式

NOTE:初始调用时必须先用next()或send(None)

2、Decorator装饰器    #本质上,decorator就是一个返回函数的高阶函数。

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318435599930270c0381a3b44db991cd6d858064ac0000

https://www.zhihu.com/question/26930016?_t_t_t=0.25066554297785925

3、偏函数 #简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。

import functools
int2 = functools.partial(int, base=2)
int2('1000000')

 

推荐阅读