【问题标题】:Why I am getting unboundLocalError in below function?为什么我在下面的函数中得到 unboundLocalError?
【发布时间】:2021-01-08 02:49:01
【问题描述】:
x=23

def printer():
    
    print(x)

    x=x+1

    return x

printer()

错误: UnboundLocalError:在赋值之前引用了局部变量“x”

【问题讨论】:

  • 在函数内部你没有将 x 声明为全局变量,因此 Python 无法判断你是指全局变量 x 还是一个新的局部变量 x。

标签: python function variables


【解决方案1】:

使用全局关键字解决问题

def printer():

    global x
    
    print(x)

    x=x+1

    return x

【讨论】:

  • 谢谢,它正在工作。但是这里有个小疑问——我已经在函数之前声明并分配了变量 x = 25,那么为什么我需要在这里使用 global 关键字呢?为什么我不能直接访问?在python中有没有关于这个的规则? TIA
  • 了解 python 作用域 - w3schools.com/python/python_scope.asp
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-22
  • 1970-01-01
  • 2018-07-04
  • 1970-01-01
  • 2013-01-13
  • 2020-09-12
  • 2022-01-02
相关资源
最近更新 更多