python变量作用域查找顺序以及可能出现的问题

  • 当前作用域为函数作用域,某变量名指向一个局部变量,而此变量在被使用前尚未绑定到特定值,将会引发 **UnboundLocalError**错误 e.g.
var = 100
def func():
    var = var + 1 #此时使用var将var视为局部变量

func()
Traceback (most recent call last):
  File "D:\python\程序包\lib\code.py", line 90, in runcode
    exec(code, self.locals)
  File "", line 1, in
  File "", line 2, in func
UnboundLocalError: local variable 'var' referenced before assignment

var = 100
def func():
    print(var) #var = 1 var为局部变量 此时使用时 var尚未绑定特定值
    var =  1

func()
Traceback (most recent call last):
  File "D:\python\程序包\lib\code.py", line 90, in runcode
    exec(code, self.locals)
  File "", line 1, in
  File "", line 2, in func
UnboundLocalError: local variable 'var' referenced before assignment

Original: https://www.cnblogs.com/jianhui-zhou/p/16365712.html
Author: 剑辉_周
Title: python变量作用域查找顺序以及可能出现的问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/603528/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球