请大神解答两个代码的返回结果的3个疑问
def fun1():print('fun1()正在被调用…')
def fun2():
print('fun2()正在被调用…')
return fun2()
>>> print(fun1())
fun1()正在被调用…
fun2()正在被调用…
None # 问题1:是不是因为内部函数fun2()未定义return返回值?
-------------------------------------------------------------------------
def fun1():
print('fun1()正在被调用…')
def fun2():
return 'fun2()正在被调用…'
fun2()
>>> print(fun1())
fun1()正在被调用…
None # 问题2:是不是因为外部函数fun1()未定义return返回值?
问题3:为何返回结果中没有fun2()正在被调用…?难道上面代码中的return 'fun2()正在被调用…'这条语句没有执行? 问题1:是的,这是因为内部函数fun2()没有定义return返回值,所以返回None。在Python中,如果函数没有指定返回值,则默认返回None。
问题2:是的,这是因为外部函数fun1()没有定义return返回值,所以返回None。
问题3:是的,这是因为在第二个代码示例中,fun2()函数虽然有返回值,但是没有被接收或者输出。如果要输出fun2()正在被调用…,需要将fun2()函数的返回值赋值给一个变量,然后输出该变量的值。修改后的代码如下:
def fun1():
print('fun1()正在被调用…')
def fun2():
return 'fun2()正在被调用…'
result = fun2()
print(result)
>>> fun1()
fun1()正在被调用…
fun2()正在被调用…
本帖最后由 lzb1001 于 2023-5-25 13:14 编辑
isdkz 发表于 2023-5-25 12:59
问题1:是的,这是因为内部函数fun2()没有定义return返回值,所以返回None。在Python中,如果函数没有指定 ...
上面的代码修改后输出的结果中还是有None哦,请看:
def fun1():
print('fun1()正在被调用…')
def fun2():
return 'fun2()正在被调用…'
result = fun2()
print(result)
>>> print(fun1())
fun1()正在被调用…
fun2()正在被调用…
None
应该改成下面这样,输出的结果中就没有None了呢:
def fun1():
print('fun1()正在被调用…')
def fun2():
return 'fun2()正在被调用…'
result = fun2()
return result
>>> print(fun1())
fun1()正在被调用…
fun2()正在被调用…
页:
[1]