跳到内容

nonlocal-and-global (PLE0115)

源自 Pylint 代码检查工具。

作用

检查同时声明为 nonlocalglobal 的变量。

为什么这不好?

nonlocal 变量是在最近的封闭作用域中定义的变量,但不在全局作用域中,而 global 变量是在全局作用域中定义的变量。

将一个变量同时声明为 nonlocalglobal 是矛盾的,将会引发 SyntaxError

示例

counter = 0


def increment():
    global counter
    nonlocal counter
    counter += 1

建议改为

counter = 0


def increment():
    global counter
    counter += 1

参考