鱼C论坛

 找回密码
 立即注册
查看: 1741|回复: 1

[已解决]函数问题

[复制链接]
发表于 2023-4-28 10:48:39 | 显示全部楼层 |阅读模式
4鱼币
def a(a1):
    def b(b1):
        return b1 ** a1
    return  b

ab= a(2)
ba= a(3)
ss=ba(2)
print(ss)


return b1 ** a1 是怎么做到让数字的平方进行相乘的呢  
a= 3
ss = a ** a
print(ss)
这个我明白  但是函数是怎么做到 b1和a1两个变量 的值是一致的
最佳答案
2023-4-28 10:48:40
这个问题是关于Python闭包的,让我们一步一步来解释这段代码。

在这段代码中,有一个外部函数`a(a1)`和一个内部函数`b(b1)`。当调用`a(a1)`时,它返回一个函数`b`,并在内部函数`b`中保存了`a1`的值。这种特性被称为闭包。

1. 首先,你调用`ab = a(2)`。这里,`a1`的值是2。这将返回一个函数`b`,其内部`a1`的值为2。所以,`ab`现在是一个`b`函数,其`a1`值为2。
2. 然后,你调用`ba = a(3)`。这里,`a1`的值是3。这将返回一个函数`b`,其内部`a1`的值为3。所以,`ba`现在是一个`b`函数,其`a1`值为3。
3. 接下来,你调用`ss = ba(2)`。这里,`ba`函数的内部`a1`值为3,所以`b1`的值是2。计算`b1 ** a1`即为`2 ** 3`,结果为8。因此,`ss`的值为8。

关于你的疑问,`b1`和`a1`的值并不需要保持一致。这两个变量是独立的。`a1`的值取决于你调用`a(a1)`时传递的参数,而`b1`的值取决于你调用`b(b1)`时传递的参数。在这个例子中,`a1`和`b1`只是恰巧都是2。实际上,你可以用不同的值来调用这两个函数。例如,你可以这样调用:
ab = a(3)
result = ab(4)

这里,`a1`的值是3,`b1`的值是4,所以`result`的值为`4 ** 3`,即64。

最佳答案

查看完整内容

这个问题是关于Python闭包的,让我们一步一步来解释这段代码。 在这段代码中,有一个外部函数`a(a1)`和一个内部函数`b(b1)`。当调用`a(a1)`时,它返回一个函数`b`,并在内部函数`b`中保存了`a1`的值。这种特性被称为闭包。 1. 首先,你调用`ab = a(2)`。这里,`a1`的值是2。这将返回一个函数`b`,其内部`a1`的值为2。所以,`ab`现在是一个`b`函数,其`a1`值为2。 2. 然后,你调用`ba = a(3)`。这里,`a1`的值是3。这将返回 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-28 10:48:40 | 显示全部楼层    本楼为最佳答案   
这个问题是关于Python闭包的,让我们一步一步来解释这段代码。

在这段代码中,有一个外部函数`a(a1)`和一个内部函数`b(b1)`。当调用`a(a1)`时,它返回一个函数`b`,并在内部函数`b`中保存了`a1`的值。这种特性被称为闭包。

1. 首先,你调用`ab = a(2)`。这里,`a1`的值是2。这将返回一个函数`b`,其内部`a1`的值为2。所以,`ab`现在是一个`b`函数,其`a1`值为2。
2. 然后,你调用`ba = a(3)`。这里,`a1`的值是3。这将返回一个函数`b`,其内部`a1`的值为3。所以,`ba`现在是一个`b`函数,其`a1`值为3。
3. 接下来,你调用`ss = ba(2)`。这里,`ba`函数的内部`a1`值为3,所以`b1`的值是2。计算`b1 ** a1`即为`2 ** 3`,结果为8。因此,`ss`的值为8。

关于你的疑问,`b1`和`a1`的值并不需要保持一致。这两个变量是独立的。`a1`的值取决于你调用`a(a1)`时传递的参数,而`b1`的值取决于你调用`b(b1)`时传递的参数。在这个例子中,`a1`和`b1`只是恰巧都是2。实际上,你可以用不同的值来调用这两个函数。例如,你可以这样调用:
ab = a(3)
result = ab(4)

这里,`a1`的值是3,`b1`的值是4,所以`result`的值为`4 ** 3`,即64。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 13:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表