Python里为什么函数可以返回函数内部定义

2021-01-02 10:06:55 字数 1771 阅读 9479

1楼:司马刀剑

1.python中一切皆对象2.函数是第一类对象3.函数对象vs函数调用4.闭包&legb法则所谓闭包,就是将组成函数的语句和这些语句的执行环境打包在一起时,得到的对象!

python 里为什么函数可以返回一个函数内部定义的函数

2楼:天天不看

没有复制,函数也是个对象,基本就和你 return 一个 list 一个 dict 没什么两样。

试试看在 python repl 中创建一个 function:

>>> def foobar(): print("你好")

>>> foobar

>>> func_list = [foobar, foobar, foobar]

>>> func_list[0]()

后者是一个闭包 ( closure ),简单来说就是函数对象中包装了函数中引用的外部变量,可以想象成这个函数被动态创建的时候,引用的外部变量冻结在函数里面了。

你新补充的我没怎么看懂,*args 的作用吗?*args 在形参上的作用类似捕获给函数的实参放在一个 args 的表中作为形参,如果作为实参传入的话,就是将 args 这个表解开作为分别的形参输入。

python 里为什么函数可以返回一个函数内部定义的函数

3楼:匿名用户

python的函数其实只是一个callable的类,拥有特殊功能,仅此而已。他也可以指向一个变量名,所以可以作为返回值返回

python 里为什么函数可以返回一个函数内部定义的函数

4楼:很高之歌

1.python中一切皆对象

2.函数是第一类对象

3.函数对象vs函数调用

4.闭包&legb法则

所谓闭包,就是将组成函数的语句和这些语句的执行环境打包在一起时,得到的对象 !

5楼:快乐不再悲伤

python 中一切皆对象,所以可以直接返回

python 里为什么函数可以返回一个函数内部定义的函数

6楼:麻麻最早

不是简单地返回函数。至少在python里,def定义的函数和lambda定义的函数,后者是包含closure的。

python 里为什么函数可以返回一个函数内部定义的函数

7楼:匿名用户

你这是面向对象的思想,应该使用class一个类,而不是def一个函数了

python 里为什么函数可以返回一个函数内部定义的函数

8楼:瑛夫科技

不是简单地返回函数。至少在python里,def定义的函数和lambda定义的函数,后者是包含closure的。

python函数可以有多个返回值

9楼:匿名用户

你可以用3个变量去接收返回值,也可以直接获得tuple,然后用数组的索引去获得。

10楼:楚渺析晶辉

这种说法不准抄确,确切的话,是不能返回多个值的但是,如下这种情况

123def abs(x, y, z): return x, y, z # 和 return (x, y, z) 一样

看似是返回了多个值,其实是返回了一个元组

当然,也可以返回列表,字典等

python在类中函数调用可以在函数定义之前吗

1楼 匿名用户 两种位置都试一下呗,编程需要有探索的劲儿,不然文档手册都看不下去的话,很难提高 python可以在函数定义之前调用吗 2楼 想你若隱若現 不能,python是解释性的,必须先定义后调用只能这样12 3def test return test python 函数定义必须在调用前面吗 3...

如何定义不定参数函数,C++定义栈怎么定义,该有什么函数

1楼 匿名用户 举个例子 ,传入不定参数函数printf typedef int fun const char void func fun fp int main c 定义栈怎么定义,该有什么函数 2楼 千锋教育 1 进栈 push 算法 若top n时,则给出溢出信息,作出错处理 进栈前首先检查栈...

数学中为什么幂函数a可以为0指数函数中a却不可

1楼 匿名用户 指数 y a x a 0且 a 1 a等于0就没意义了,幂函数不一样y x a a 0时y 1 2楼 匿名用户 兄弟,幂函数的表现形式是y x a,a 0时,x 1 a 1时,x x,并以此类推 但是指数函数中,它的表现形式是y a x,a 0,0的x次方都是0,无研究意义,就类似分...