不变的变量,即使它发生变化

Constant variable even though it changes

请在 运行 pylint 之后考虑此代码:

'''
Test
'''
i = 0
while i < 4:
    myvar = i
    i = i + 1

pylint 报告: Constant name "myvar" doesn't conform to UPPER_CASE naming style (invalid-name) 但是,myvar 在 运行 过程中明显发生变化时,有多少是真正的常数?

IIUC,它不是误报而是myvar被认为是一个常数,因为它在迭代过程中从不改变,下一次迭代变量被认为是"new"。我的理解正确吗?

Pylint 认为 myvar 按照约定是常量,因为它是全局的(在模块级别声明)。

通常,您不应该在模块级别编写这样的代码,而是将其包装在一个函数中:

def main():
    i = 0
    while i < 4:
        myvar = i
        i = i + 1

if __name__ == '__main__':
    main()