Постоянная переменная, даже если она меняется - PullRequest
0 голосов
/ 05 сентября 2018

Пожалуйста, примите во внимание этот код после запуска 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 голосов
/ 05 сентября 2018

Pylint считает, что myvar является константой по соглашению, поскольку она глобальна (объявлена ​​на уровне модуля).

Как правило, вы не должны писать такой код на уровне модуля, вместо этого оберните его в функцию:

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

if __name__ == '__main__':
    main()
...