Постоянная переменная, даже если она меняется
Пожалуйста, рассмотрите этот код после запуска 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()