python - 从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
,因此:c(a())
如果您选择这样做,则可以这样定义
c
:def c(): b = a() #your code here
这将允许您简单地
c
正常调用,因此:`c()`
推荐阅读
- python - Pandas - 合并包含一些空值的列
- ruby-on-rails - Rails 将日志数据保存到数据库
- amazon-web-services - update 命令中的临时块使 DISK FULL 红移
- firebase - 如何删除连接到 Firebase 的 GA 属性?
- entity-framework - EF6 以错误的顺序放置插入参数
- javascript - 节点 + MySQL [ECONNREFUSED 127.0.0.1:3306]
- javascript - 如何从firebase函数返回错误?
- c# - 在 UWP 应用程序中打开和读取 Excel 文件
- botframework - Microsoft 聊天机器人显示 403 Quota Exceeded 错误
- nltk - NLTK 文本分类置信度朴素贝叶斯