@seosova

Стоит ли глобальные переменные писать заглавными буквами в обычных скриптах?

Есть для примера самый простой скрипт из Лутца. Если его прогнать через pylint - он ругается, что переменные глобальные и давай-ка пиши их большими. Но такой вид скрипта, почему-то очень режет взгляд
#!/usr/bin/env python3
""" Small test program for while cycle """

while True:
    REPLY = input('Enter text:')
    if REPLY == 'stop':
        break
    try:
        NUM = int(REPLY)
    except:
        print('Bad!' * 8)
    else:
        if NUM < 20:
            print('low')
        else:
            print(int(REPLY) ** 2)
print('Bye!')

Может быть стоит просто "забить" на придирчивость pylint ( тем более pep8, flake8 нормально воспринимают это). Или по большому счету, так и должны оформляться даже просты скрипты, и просто переменные, но существующие на уровне всего скрипта, стоит писать большими как "по настоящему" глобальные?
  • Вопрос задан
  • 2012 просмотров
Пригласить эксперта
Ответы на вопрос 4
angru
@angru
А что если этот блок кода обернуть в:

def main():
    while True:
        # do something

if __name__ == '__main__':
    main()


Все еще придирается? Я, например, таким никогда не занимался, подразумевается(мной), что если переменная обьявлена на самом верхнем уровне, то да - она глобальная, должна содержать только заглавные буквы и не может нигде в коде быть изменена(опять же, все это на основе соглашения). У вас они обьявлены в блоке while, да еще и изменяются, меня бы это ввело в заблуждение, т.к. по внешнему виду - это константа.

P.S. В текущем виде ваш код противоречит PEP-8.
Ответ написан
@deliro
REPLY = input('Enter text:')
Эта переменная по определению не подходит под константу, следовательно, это обычная переменная и писать ещё стоит как_обычную_переменную.
Ответ написан
s0ci0pat
@s0ci0pat
I'm Awesome
Если ты сейчас не привыкнешь к code style, потом будет поздно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы