[英]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
执行此操作时,函数b
在a
本地定义。 这意味着它不能被默认的外部访问a
。 解决此问题的方法主要有两种,但都涉及修改a
:
global
关键字(不推荐)
def a(): global b def b(): print("hi")
此处, global
关键字将b
设置为全局变量,以便您可以通过通常从c
内调用它来访问它。 这是普遍的皱眉。
从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.