python - 在python中调用封闭函数
问题描述
在使用封闭函数的方式中,当我使用调用方法时它不起作用。
def foo():
x = 20
def bar():
return x
bar()
在这里,当我调用 foo() 时,它返回 None。当我在 foo 中使用“return bar”而不是“bar()”时,它在调用 foo()() 时效果很好,那么为什么 return 在封闭函数中不起作用但 print 起作用?
解决方案
foo()
不返回 的值bar()
,因为您没有将它作为返回值从foo()
.
def foo():
x = 20
def bar():
return x
bar()
# No return value for foo, this equals return None
return None
res = foo()
type(res)
# NoneType
如果你想传播bar()
via的返回值foo()
,你需要使用return
它:
def foo():
x = 20
def bar():
return x
return bar()
res = foo()
x
# 20
推荐阅读
- java - 应用程序因 java.lang.IllegalStateException 而崩溃
- c# - 如何使 Unity 按钮更改 ScrollView 中的某些内容
- scala - Spark Structured Streaming 输出未显示在 inteliJ 控制台中
- python - 变量名称的长度会影响程序运行的速度吗?
- ruby-on-rails - Ruby on Rails 教程:route_path 和 route_url 之间的区别
- ios - 在 UITableViewCell 上显示和使用拖动/重新排序按钮而不处于“编辑”模式?
- assembly - 汇编除以零溢出
- grafana - 计算值在转换为 1 之前设置为 0 的平均时间
- java - 如何在java中使用条件拆分字符串
- c++ - 我可以在声明后初始化 char 类型变量吗?