tengke 发表于 2023-4-28 16:24:31

函数

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函数里面的

isdkz 发表于 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 函数。这里是修改后的代码:

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 并传入 mm 函数
f = a(mm)

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

print(f_result)


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