Постоянная переменная, даже если она меняется

Пожалуйста, рассмотрите этот код после запуска Pylint:

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

Пилинт сообщает:Constant name "myvar" doesn't conform to UPPER_CASE naming style (invalid-name)Но сколько стоит myvar неужели константа, когда она явно меняется в процессе работы?

IIUC, это не ложный позитив, а скорее myvar считается константой, потому что она никогда не изменяется во время итерации, а на следующей итерации переменная рассматривается как "новая". Я правильно понял?

1 ответ

Решение

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

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

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

if __name__ == '__main__':
    main()
Другие вопросы по тегам