为何Python函数中if条件为True时,后续return语句仍会执行?
问题解答:为何if条件为True时后续代码仍执行?
首先,你误解了代码结构——所谓的"else块"根本不是else分支的一部分,Python只会识别else关键字,注释不会影响代码逻辑。
看你的代码:
def foo(): if 1 > 0: print('Works first condition!') # 这里只是注释,不属于else语法范畴 return print('Works second condition!') print(foo())
当if 1>0条件成立时,会执行if块内的print('Works first condition!'),执行完if块后,程序会继续向下执行后续代码——那行return print(...)和if没有分支关联,不管if条件是否成立,只要没提前触发return,都会被执行。
另外,函数返回None的原因是:print()函数本身执行后返回的就是None,你用return print(...),相当于先调用print输出内容,再把print的返回值(None)作为foo()函数的返回值,最后外层的print(foo())会把这个返回值打印出来,所以输出里会出现None。
内容的提问来源于stack exchange,提问作者cardinal2000
相关产品推荐
相关产品推荐

