首页 > 解决方案 > 从python中的另一个函数调用嵌套函数?

问题描述

我在另一个函数和第三个函数内部有一个函数。如何在第三个函数中调用嵌套函数?我可以使用任何特殊的库吗?我不允许编辑 a() 或 b(),只能编辑 c()。

def a():
    def b():
        print("hi")

def c():
    # code only here to call b() to print

标签: python

解决方案


当你这样做时,函数b在本地定义a。这意味着默认情况下无法在a. 有两种主要方法可以解决这个问题,但都涉及修改a

  1. global关键字(不推荐)

    def a():
        global b
        def b():
            print("hi")
    

    在这里,global关键字设置b为全局变量,因此您可以通过在内部正常调用它来访问它c这通常是不受欢迎的。

  2. 从函数返回a并将其传递给c

    def a():
        def b():
            print("hi")
        return b
    
    def c(b):
        #your code
    

    然后,当您调用 时c,您应该传递b给它,a它将返回。您可以这样做:

    b = a()
    c(b)
    

    或者您可以在a每次调用时简单地调用c,因此:

    c(a())
    

    如果您选择这样做,则可以这样定义c

    def c():
        b = a()
        #your code here
    

    这将允许您简单地c正常调用,因此:

    `c()`
    

推荐阅读