请教大家一个内部函数的问题,希望能用大白话给小白解释一下,谢谢啦
return function() 和 return function的区别是啥啊?{:5_104:}第一个l例子:def funx(x):
def funy(y):
return x*y
return funy
第二个例子:def fun1():
x=5
def fun2():
t=x+x
return t
return fun2()
希望大佬结合例子说说,我没学过c++和c语言,但是来来回回真搞不懂 C:\Users\lenovo\Desktop\1649
不好意思,我严格缩进了,不知道发过去为啥这样 C:\Users\lenovo\Desktop\1649.png
不好意思,我严格缩进了,不知道发过去为啥这样 为啥不能上传图片... 本帖最后由 逃兵 于 2021-1-24 17:08 编辑
你可以这么理解
function是个工具
function()是拿这件工具做什么事
第一个例子
def funx(x):
def funy(y):
return x*y
return funy
我们给funx()传入一个参数5,会返回一个工具funy
>>> funx(5)
<function funx.<locals>.funy at 0x0000000002F10B88>
这个时候的funy相当于
funy = funx(5)
我们再给funy传入个参数10
>>> funy(10)
50
联合起来
>>> funx(5)(10)
50 C:\Users\lenovo\Desktop 123Marchapril 发表于 2021-1-24 17:01
新鱼油上传不了图片的{:10_285:} 逃兵 发表于 2021-1-24 17:00
你可以这么理解
function是个工具
function()是拿这件工具做什么事
也就是说return function是调用嵌入的函数function。这时候需要对它赋值,才会返回结果,这个返回结果其实就是return function(),也就是说return function()是相当于return5*10的,是吧?(假设x=5,y=10) Daniel_Zhang 发表于 2021-1-24 17:14
新鱼油上传不了图片的
好想要你头像当表情包啊 123Marchapril 发表于 2021-1-24 17:21
好想要你头像当表情包啊
百度搜的
猫咪 动图 逃兵 发表于 2021-1-24 17:00
你可以这么理解
function是个工具
function()是拿这件工具做什么事
返回了工具之后,对其进行赋值就相当于拿工具做事,对吧 123Marchapril 发表于 2021-1-24 18:00
返回了工具之后,对其进行赋值就相当于拿工具做事,对吧
对的 逃兵 发表于 2021-1-24 18:10
对的
一:是不是嵌套的函数必须得有一个未知数,就是不确定的数才用return function。二:如果嵌套的函数不用赋值就能确定下来,就只能用return function()了,是吧 123Marchapril 发表于 2021-1-24 18:27
一:是不是嵌套的函数必须得有一个未知数,就是不确定的数才用return function。二:如果嵌套的函数不用 ...
这是不对的
没有参数的函数是只能做一件事的工具
不加括号还是返回这个工具
加括号是返回这个工具所做的事情
例子:
def a():
def b():
return '我被调用了'
return b
运行:
>>> a()
<function a.<locals>.b at 0x0000000002EACEE8>
>>> a()()
'我被调用了'
>>> test = a()
>>> test
<function a.<locals>.b at 0x0000000002EC2DC8>
>>> test()
'我被调用了' 逃兵 发表于 2021-1-24 18:32
这是不对的
没有参数的函数是只能做一件事的工具
不加括号还是返回这个工具
大概了解了,非常感谢您!
{:5_109:}
页:
[1]