Python函数中return后的语句一定不会执行吗?

Leo
Leo
发布时间:2026-10-13 | 5人浏览过
原创

本文解析Python中return语句的执行机制。默认无return时返回None,且None与任何类型比较均不相等。通常return后代码不再执行,但在try-finally结构中,即使return触发函数退出,finally块仍会执行。通过代码示例展示了这一关键例外,帮助开发者避免逻辑误区。

前言

return语句的主要作用是终止当前函数的执行,并将一个表达式的值返回给调用者。如果函数中没有显式编写return语句,或者return不带任何参数,Python会默认返回None。None是一个特殊的常量,其数据类型为NoneType。NoneType是Python中一种特殊的数据类型,它仅包含一个唯一的取值,即None本身。

None不支持任何运算操作,也不具备任何内置方法。在比较运算中,None与任何其他数据类型进行相等性比较时,结果永远为False。尽管如此,你可以将None赋值给任意变量,这在Python中是合法的操作。

1》当函数没有显式return,默认返回None值

>>> def fun(): 
 print 'ok' 
 
>>> res=fun() 
ok 
>>> type(res) 
<type 'NoneType'> 
>>> res==None 
True 
>>> def func(): 
 print 98 
 return 
 
>>> f=func() 
98 
>>> f 
>>> type(f) 
<type 'NoneType'> 
>>> f==None 
True 

2》和任何其他的数据类型比较是否相等时永远返回false

>>> 'python'==None 
False 
>>> ''==None 
False 
>>> 9==None 
False 
>>> 0.0==None 
False 

3》执行到return语句时,函数会立即终止,return之后的代码语句将不再执行。然而,存在一种例外情况:当return语句位于try语句块中时,流程会有所不同。

def fun(): 
 print 98 
 return 'ok'#执行到该return语句时,函数终止,后边的语句不再执行 
 print 98 
 
def func(): 
 try: 
  print 98 
  return 'ok' #函数得到了一个返回值 
 finally:#finally语句块中的语句依然会执行 
  print 98 
 
print fun() 
print '----------' 
print func() 

运行结果:

98
ok
----------
98
98
ok

总结

以上就是本文的全部内容,希望这些解析能对您的Python学习或工作有所帮助。如果您有任何疑问或见解,欢迎在评论区留言交流,感谢大家对本站的支持。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表