内部函数
请问这两个函数的区别是什么?第一个:
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
return funIn()
第二个:
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
return funIn
两个函数的区别解释
这两个函数的区别在于 返回值类型 和 执行时机:
[*]第一个函数:
调用 funOut() 时会直接执行内部函数 funIn(),并返回其执行结果(此处返回 None,因为 funIn 没有显式返回值)。
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
return funIn()# 这里会立即执行 funIn
调用示例:
funOut()# 直接输出:宾果!你成功访问到我啦!
[*]第二个函数:
调用 funOut() 时仅返回 funIn 函数对象,需要再调用一次才能执行。
def funOut():
def funIn():
print('宾果!你成功访问到我啦!')
return funIn# 这里返回函数本身,不执行
调用示例:
inner_func = funOut()# 获得 funIn 函数对象
inner_func() # 输出:宾果!你成功访问到我啦!
关键总结
[*]第一个函数:返回函数执行结果(立即触发打印)
[*]第二个函数:返回函数对象(需要二次调用才会触发打印)
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 第一个是 return funIn(),就是执行 funIn(打印一行字)并且返回 funIn 的返回值(None)
第二行返回 funIn,可以用 funOut() 获取 funIn,可以用 funOut()() 执行 funIn
求最佳
页:
[1]