美文网首页ITS·黑客
【Python】笔记10(返回函数)

【Python】笔记10(返回函数)

作者: 阿凯Awesome | 来源:发表于2017-04-21 09:12 被阅读10次

返回函数,是把函数作为结果值返回(return )的高阶函数。

如例子中的非立即求和函数lazy_sum:

lazy_sum的定义中又定义了sum这个函数,对比两次return,sum返回的是值,lazy_sum返回的是sum函数(*args,应是表示数组参数)。在这其中有一个停顿,当调用lazy_sum时,先得到返回值函数。当要出现具体数值时,以sum对应的函数形式获得,如lay_sum(1,3,5,7,9)()【形如sum()】,得到的是具体数值25。

既然调用lazy_sum时就返回到了sum,如果直接输入sum(),却会出现错误,这样是因为sum作为内部函数,引用了外部函数的参数和部分变量,最后返回得到sum时,相关的参数和变量都保存在了这个特定的①sum函数中,这种程序结构称为“闭包(Closure)”

①特定的sum指的是,每次调用lazy_sum时,即使传入的参数一样,那返回得到的sum也是不相同的。


返回一个函数时,该函数并未执行。在循环中,如果返回函数中引用了任何可能会变化的变量,则这个返回函数可能会只引用这个变量的最后一次值。

如例子中的,i是count()的变量,最后的结果是3,到后面传入返回值f的时候,函数f还没有被调用,只是作为函数保存到了fs这个list中,当要调用f()的时候,因为定义中包含了i,此时f要引用i才能输出值,而显然i的最后值是3,所以f()相当于引用了i=3。

如,这一个是上例的改良的函数,其中第一层函数先执行,返回一个list:fs=[f(1),f(2),f(3)];因为第一层中添加的返回值是f(i),因此f(i)此时就被立刻执行了,并且以j=i的形式将值都一一传入了f(j)中;第三层函数的g()引用了f(j)的j,而此时的j是有具体值的,所以g()的所引用的变量是固定的,因此也就可以返回想要的到的值。

range(x,y),当x<y ∈Z时,指的是从x开始(y-x)个整数(正负均可)组成的list,这个从x开始,一直到y的前一个,恰好不包括y;         当x=0<y时,即range(y),可直接认为前y个自然数组成的list;

上面定义函数count()的例子中,因为count()的值是一个list,可以用f1,f2,f3=count()来取出元素的值,如:

相关文章

  • python函数整理

    python函数整理: 数学函数: abs(x):返回数字的绝对值;如abs(-10)返回10. ceil(x):...

  • 【Python】笔记10(返回函数)

    返回函数,是把函数作为结果值返回(return )的高阶函数。 如例子中的非立即求和函数lazy_sum: laz...

  • python 函数式编程之返回函数

    python学习笔记,特做记录,分享给大家,希望对大家有所帮助。 返回函数 函数作为返回值 高阶函数除了可以接受函...

  • Python - 2017/01/28-函数

    调用python内置函数 函数名(参数) 即可调用python内置函数 help(函数名) 返回python对于函...

  • Python 函数之二(返回值、作用域、LEGB、销毁)

    一、函数返回值 先看几个例子 总结 Python 函数使用 return 语句返回 “返回值” 所有函数都有返回值...

  • Python函数进阶

    一、函数返回值 先看下几个例子: 总结: python函数使用return语句返回 "返回值" 所有函数都有返回值...

  • Python函数

    Python函数 标签: 辣鸡飞正在自学中... 用def定义函数 1.python的函数返回多值其实是返回一个t...

  • Python 数字

    2018-06-28 ###Python数学函数 ###Python数字类型转换 #abs() 函数返回数字的绝对...

  • python——函数返回

    函数返回多个值 如果没有返回

  • day 9

    part 1 函数回顾 part 2 函数的返回值 1、 python 每个函数都有返回值,返回值就是return...

网友评论

    本文标题:【Python】笔记10(返回函数)

    本文链接:https://www.haomeiwen.com/subject/gworzttx.html