繁体   English   中英

从python中的另一个函数调用嵌套函数?

[英]Call nested function from another function in python?

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

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

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

执行此操作时,函数ba本地定义。 这意味着它不能被默认的外部访问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时简单地调用a ,因此:

     c(a()) 

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

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

    这将使您可以简单地正常调用c ,因此:

     `c()` 

由于Python作用域的工作方式,这是不可能的。 b()对于a()是局部的,因此在c()中不存在。

编辑:评论者是正确的,我最初给出的建议不起作用-因此这绝对是不可能的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM