新手不懂,求帮助
def func1():a = "python小黑屋"
def func2():
nonlocal a
a = a * 3
print(a)
return func2()
print(func1())
为啥这个输出是"python小黑屋"和 None,为什么没有返回值啊? 来人 因为 fun1() 返回的是对 fun2() 的调用结果,而 fun2() 没有 return 任何东西,所以,fun2() 返回的是 None,那么,fun1() 返回的就是 None。print(fun1()) 打印输出如下内容就不足为奇了。
python小黑屋python小黑屋python小黑屋
None 本帖最后由 HTIAN 于 2019-12-1 13:11 编辑
def func1():
a = "python小黑屋"
def func2():
nonlocal a
a = a * 3
print(a)
return func2()
print(func1())
把"python小黑屋"赋值给了a
又定义一个非局部变量a( nonlocal a)
那么func2中的a和func1中的a是一个变量;
a=a*3
所以会输出“python小黑屋python小黑屋python小黑屋”
又是 return func2()
本来func2就在func1中,又在func2的下面调用func2
func2中是print(a)不是return(a)所以输出none
谢谢 HTIAN 发表于 2019-12-1 11:37
def func1():
a = "python小黑屋"
def func2():
谢谢
页:
[1]