风火编程--函数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

你可能感兴趣的:(python基础)