风火编程--函数return之后执行语句--try...finally应用

try…except…else…finally用法及说明

1. 常规用法

异常捕捉, 明确逻辑顺序
  try:
     dangerous_call()
  except Exception as e:
      logging.error(str(e))
 else:
     after_call()
 finally:
     always_call()

2. 确定执行,处理重要事务

在continal, break, return, sys.exit(), 异常之后仍会执行的finally子句常用来释放重要资源
def function():
    try:
        main_call()
        return result
  finally:
      always_call()

面试题练习

a =  1
def func():
    global a
    try:
        print(a) #... (1)
        a += 1 #... (2)
        return a #... (3)
        a += 1 #... (4)
        print(a) #... (5)
    finally:
        a += 1 #... (6)

b = func() #... (7)
print(b) #... (8)
print(a) #... (9)

1
2
3

(1)输出a的初始值1
(2)返回此时a的值2
(3)返回此时a的值2
(4)不执行
(5)不执行
(6)此时a的值3
(7)func在(3)的返回值2
(8)输出func正在(3)的返回值2
(9)输出a的最终值3

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值