常数变数即使改变

时间:2018-09-05 06:38:15

标签: python constants pep8 pep

请在运行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视为常量,因为它在迭代过程中从未发生变化,并且在下一次迭代中,该变量被视为“新”。我理解正确吗?

1 个答案:

答案 0 :(得分:2)

Pylint认为myvar是一个常量,因为它是全局的(在模块级别上声明)。

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

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

if __name__ == '__main__':
    main()