鱼C论坛

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

[已解决]函数

[复制链接]
发表于 2023-4-28 16:24:31 | 显示全部楼层 |阅读模式
4鱼币
def a(a1):
    print(a1)
    def b(b1,func):
        func()
        print(b1)
        def c(c1):
            ss = 44
            print(ss)
        return c
    return b
def mm():
    print("halou")
# 调用函数a和b,并传入相应的参数
f = a(mm)
print(f)

我想获取 a函数打印mm函数里面的
最佳答案
2023-4-28 16:24:32
首先,我们需要理解函数 a 的结构及其返回值。在这段代码中,a 函数接受一个参数 a1,打印 a1 的值,然后定义了一个嵌套函数 b 并返回它。函数 b 接受两个参数:b1 和 func。b 函数在调用时会执行 func,并打印参数 b1。同时,b 函数定义了一个嵌套函数 c,最后返回 c。

为了达到你的目的,我们需要调整函数调用的方式。在给定的代码中,f 是函数 a 的返回值,也就是函数 b。因此,当你打印 f 时,实际上你是在打印函数 b 的描述,而不是执行它。

要获取 a 函数打印 mm 函数里面的内容,你需要首先调用 a,然后调用返回的函数 b,最后传入 mm 函数作为参数。这样一来,你可以在 b 函数中调用 mm 函数。这里是修改后的代码:

  1. def a(a1):
  2.     print(a1)
  3.     def b(b1, func):
  4.         func()
  5.         print(b1)
  6.         def c(c1):
  7.             ss = 44
  8.             print(ss)
  9.         return c
  10.     return b

  11. def mm():
  12.     print("halou")

  13. # 调用函数 a 并传入 mm 函数
  14. f = a(mm)

  15. # 调用函数 b,并传入参数
  16. f_result = f("b1参数", mm)

  17. print(f_result)
复制代码


这样,当你运行这段代码时,会首先打印 a 函数中的 a1(也就是 mm 函数的描述),然后在 b 函数中调用 mm 函数,打印 "halou"。请注意,这里的 a 函数并没有直接调用 mm 函数,而是在 b 函数中调用的。

最佳答案

查看完整内容

首先,我们需要理解函数 a 的结构及其返回值。在这段代码中,a 函数接受一个参数 a1,打印 a1 的值,然后定义了一个嵌套函数 b 并返回它。函数 b 接受两个参数:b1 和 func。b 函数在调用时会执行 func,并打印参数 b1。同时,b 函数定义了一个嵌套函数 c,最后返回 c。 为了达到你的目的,我们需要调整函数调用的方式。在给定的代码中,f 是函数 a 的返回值,也就是函数 b。因此,当你打印 f 时,实际上你是在打印函数 b 的描 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-28 16:24:32 | 显示全部楼层    本楼为最佳答案   
首先,我们需要理解函数 a 的结构及其返回值。在这段代码中,a 函数接受一个参数 a1,打印 a1 的值,然后定义了一个嵌套函数 b 并返回它。函数 b 接受两个参数:b1 和 func。b 函数在调用时会执行 func,并打印参数 b1。同时,b 函数定义了一个嵌套函数 c,最后返回 c。

为了达到你的目的,我们需要调整函数调用的方式。在给定的代码中,f 是函数 a 的返回值,也就是函数 b。因此,当你打印 f 时,实际上你是在打印函数 b 的描述,而不是执行它。

要获取 a 函数打印 mm 函数里面的内容,你需要首先调用 a,然后调用返回的函数 b,最后传入 mm 函数作为参数。这样一来,你可以在 b 函数中调用 mm 函数。这里是修改后的代码:

  1. def a(a1):
  2.     print(a1)
  3.     def b(b1, func):
  4.         func()
  5.         print(b1)
  6.         def c(c1):
  7.             ss = 44
  8.             print(ss)
  9.         return c
  10.     return b

  11. def mm():
  12.     print("halou")

  13. # 调用函数 a 并传入 mm 函数
  14. f = a(mm)

  15. # 调用函数 b,并传入参数
  16. f_result = f("b1参数", mm)

  17. print(f_result)
复制代码


这样,当你运行这段代码时,会首先打印 a 函数中的 a1(也就是 mm 函数的描述),然后在 b 函数中调用 mm 函数,打印 "halou"。请注意,这里的 a 函数并没有直接调用 mm 函数,而是在 b 函数中调用的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 00:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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