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)

  • 相关阅读:
    Django视图
    Django路由系统
    Django概述,配置文件,web框架本质,Django框架
    Mysql
    R语言之常用函数
    从PCA、PLS-DA、OPLS-DA学习线性代数和矩阵
    算法第一关
    别人处理二代测序的流程
    reportlab包使用指南
    Python 文本(txt) 转换成 EXCEL(xls)
  • 原文地址:https://www.cnblogs.com/winterfells/p/6216149.html
Copyright © 2011-2022 走看看