python的高级性质

来源:互联网 发布:肯园淘宝授权店 编辑:程序博客网 时间:2024/05/30 23:33

看了微博上一位叫做@五道口宅男 的文章后有一些启发 贴上网址http://top.jobbole.com/4681/ 

po主建议了学习python的一些步骤 我觉得很适合自己所以采纳之!


今天开始博客写下学习历程吧


今天学习了几样python的特性


列表生成式:

可以更加方便的生成list  格式:

[ 规则 ]

介绍的太简单了 哈哈

例子像这样 

L = ['Hello', 'World', 18, 'Apple', None]

[s.lower() for s in L if isinstance(s, str)]

具体规则看廖雪峰的python教程吧http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00138681963899940a998c0ace64bb5ad45d1b56b103c48000

暂时只是想记录下自己的行踪 所以不会很详细的记录


生成器:

之前也读过一些书籍与python的官方文档 但是都没能了解yield 但是这次可算是懂了

定义一个函数后 只要在其中加入了yield 值 这个形式 那么函数就变成生成器了

这个生成器被使用的方法一般为 在迭代式中 即for each in 生成器的结构中使用

从第一次调用后 函数每次运行到yield便返回值作为迭代式此次迭代值的值  然后函数在后台就暂停【不是真正的返回 其局部变量等都会存在】一直到函数满足一定条件运行到最后 即作为整个生成器中包含的所有元素 迭代式结束 最后一次yield的值即为此迭代对象的最后的值


高阶函数:

类似C语言中可以使用一个函数指针来指向不同的函数 从而可以在其他函数中以传入参数的形式 在函数中调用此函数

python中例如map()函数   就可以以函数为输入参数计算输出


除此之外还有一点是python中可以在函数中定义另外一个函数,从而让一个函数对象作为返回值返回

他举了一个例子 

def lazy_sum(*args):    def sum():        ax = 0        for n in args:            ax = ax + n        return ax    return sum

那么这个函数的返回值依然是一个函数

当我写下

f=lazy_sum(*[1,2,3,4])时 返回的会是一个函数  

引用博客中的话

lazy_sum返回函数sum时,相关参数和变量都保存在返回的函数中,这种称为“闭包(Closure)

我还是不太明白闭包的意思 但是总之在上例中 写下f()后 会返回的值就是10 今后再好好学习!



关于函数的传入参数:

今天刚刚知道可以使用一下两个方式传入参数

*args:以列表方式为每个函数的传入参数赋值

**kw :以dict方式为函数中每个关键字传入参数

so 具体细节依然看廖雪峰的博客啦:

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738449338c8a122a7f2e047899fc162f4a7205ea3000


今天先到这里!


  以上




0 0
原创粉丝点击