【问题标题】:UnboundLocalError with nested function when modifying parent function argument [duplicate]修改父函数参数时带有嵌套函数的 UnboundLocalError [重复]
【发布时间】:2021-01-23 15:07:19
【问题描述】:

我是 python 新手,我正在尝试了解这些 hello world 示例之间的区别

def hello(hi):

    def world(obj):
        return hi + ', ' + obj + '!'

    return world


world = hello('Hello')
print(world('World'))

Hello, World!
def hello(hi):

    def world(obj):
        hi = hi + ', ' + obj + '!'
        return hi

    return world


world = hello('Hello')
print(world('World'))

      2 
      3     def world(obj):
----> 4         hi = hi + ', ' + obj + '!'
      5         return hi
      6 

UnboundLocalError: local variable 'hi' referenced before assignment

为什么第二个例子失败了?

【问题讨论】:

    标签: python python-3.x closures


    【解决方案1】:

    第二块代码失败,因为hihello 函数范围内的参数,但它在world 函数中再次赋值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多