【问题标题】:Error in nonlocal keyword in python [duplicate]python中的非本地关键字错误[重复]
【发布时间】:2018-02-05 01:17:54
【问题描述】:

我正在尝试在以下代码中在 python 中使用nonlocal 关键字。 inner() 包含在 outer() 中,我想创建一个计数器变量,它会记住从 outer() 调用 inner() 的次数。 ctrouter() 中定义,在inner() 中定义为nonlocal

但我收到no binding for nonlocal 'ctr' found 的错误。

def inner1():
    nonlocal ctr
    ctr=ctr+1
    print(' ctr= {0}'.format(ctr))


def outer1():
    ctr=0
    for i in range(5):
        inner1()

outer1()

【问题讨论】:

  • inner()outer 中被调用不等同于在 outer 中定义的 inner。 nonlocal 与后者一起使用。
  • 非本地语句中列出的名称,与全局语句中列出的名称不同,必须引用封闭范围内预先存在的绑定...该变量在哪里定义封闭范围??

标签: python


【解决方案1】:

inner() 包含在 outer() 中

inner没有包含在outer中(不在outer范围内定义),你只是从outer调用inner;这里没有任何关闭。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    • 2015-06-03
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    相关资源
    最近更新 更多