• 遇到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)

  • 相关阅读:
    【3-9】数据库基本应用
    Oracle所有分析函数<转>
    Oracle数据库row_number详解<转>
    MVC人员管理系统
    MVC Razor语法
    MVC基础
    邮箱验证
    jQuery入门基础(动画效果)
    js前台与后台数据交互
    ajax入门基础
  • 原文地址:https://www.cnblogs.com/winterfells/p/6216149.html
Copyright © 2020-2023  润新知