zoukankan      html  css  js  c++  java
  • 遇到local variable 'e' referenced before assignment这样的问题应该如何解决

    问题:程序报错:local variable 'e' referenced before assignment

    解决:遇到这样的问题,说明你在声明变量e之前就已经对其进行了调用,定位到错误的地方,对变量进行重新的声明


    通常这样的问题对于python的程序员来说都是因为习惯了python2的语法,转移到python3中时,出现的错误。
    在Python3中,异常对象无法在异常块作用域外访问。(原因是在垃圾收集器运行且从内存中清理引用之前会在内存栈帧中保存一个引用周期)
    通常参考下面这个例子来做异常处理:

    在python2 中:
    import sys

    def bar(i):
    if i == 1:
    raise KeyError(1)
    if i == 2:
    raise ValueError(2)

    def bad():
    e = None
    try:
    bar(int(sys.argv[1]))
    except KeyError as e:
    print('key error')
    except ValueError as e:
    print('value error')
    print(e)

    在python3中:
    import sys

    def bar(i):
    if i == 1:
    raise KeyError(1)
    if i == 2:
    raise ValueError(2)

    def good():
    exception = None
    try:
    bar(int(sys.argv[1]))
    except KeyError as e:
    exception = e
    print('key error')
    except ValueError as e:
    exception = e
    print('value error')
    print(exception)

  • 相关阅读:
    DHCP全局配置文件解析
    DHCP介绍
    使用Samba服务程序,让linux系统之间共享文件
    操作系统
    XML基础、 webservice
    JDBC编程--JDBC进阶
    JDBC编程--JDBC基础
    JDBC编程--SQL基础
    Java web--web编程原理
    Java web--web编程进阶(二)
  • 原文地址:https://www.cnblogs.com/winterfells/p/6216149.html
Copyright © 2011-2022 走看看