求助
def funx():
x=5
def funy():
nonlocal x
x+=1
return x
return funy()
a=funx()
print(a())
print(a())
print(a())为什么报错 你返回的是一个值,不是函数对象,这个值不能被调用。 因为你:
a=funx()
返回的是 6
然后你想print(6())
这样能不报错嘛~ 要用print(a) 要么就是print(fun(x)) Twilight6 发表于 2020-5-20 23:27
因为你:
返回的是 6
我看了这个后对,return fun和return fun()有点懵,上网搜了一下,看完还是不是很明白,能讲下吗 qiuyouzhi 发表于 2020-5-20 23:09
你返回的是一个值,不是函数对象,这个值不能被调用。
如我发的截屏图函数定义中返回funy就可以这样写了,为什么懵,讲下这两者的不同呗 tiger吴 发表于 2020-5-21 20:56
如我发的截屏图函数定义中返回funy就可以这样写了,为什么懵,讲下这两者的不同呗
带了括号就是调用函数了,结果就是函数的返回值。
但如果没带括号就只是一个单纯的函数对象。 qiuyouzhi 发表于 2020-5-21 21:04
带了括号就是调用函数了,结果就是函数的返回值。
但如果没带括号就只是一个单纯的函数对象。
看过这个解释还是不懂,看来得过段时间,学习更深入了再来研究了 tiger吴 发表于 2020-5-21 21:06
看过这个解释还是不懂,看来得过段时间,学习更深入了再来研究了
嗯嗯,相信你能理解 题目没讲能不能运行,只是考你分析print结果,这种选择题试卷比较多
要么就是这样
def funx():
x=5
def funy():
nonlocal x
x+=1
return x
return funy()
print(funx())
print(funx())
print(funx())
页:
[1]