Каковы соглашения по наименованию переменных и функций в Python?
Заголовок: Проблема выбора стиля именования переменных и функций в Python
Описание проблемы:
Я пришел из C# и в этой языке имена переменных и методов обычно пишутся в формате camelCase или PascalCase:
// Пример на C#
string thisIsMyVariable = "a";
public void ThisIsMyMethod() { }
В Python я заметил, что, помимо вышеперечисленных стилей, также широко используется стиль snake_case:
# Пример на Python
this_is_my_variable = 'a'
def this_is_my_function():
Существует ли более предпочтительный и однозначный стиль написания кода в Python? Какой стиль считается общепринятым в сообществе Python?
5 ответ(ов)
Стиль кодирования обычно является частью внутренних политик/конвенций организации, однако, в общем, самым распространенным стилем в Python считается стиль, использующий все буквы в нижнем регистре с разделением слов символом подчеркивания (также известный как snake_case).
Большинство разработчиков на Python предпочитают использовать нижние подчеркивания, но, хотя я уже более 5 лет занимаюсь Python, они мне не нравятся. Для меня они выглядят некрасиво, возможно, это связано с тем, что я много работал с Java.
Мне больше нравится стиль CamelCase, так как он лучше подходит для названий классов. Логичнее использовать SomeClass.doSomething()
, чем SomeClass.do_something()
. Если вы посмотрите на глобальный индекс модулей в Python, то увидите оба стиля, так как это сборище библиотек из различных источников, которое развивалось со временем, а не что-то, разработанное одной компанией, такой как Sun, с жесткими правилами кодирования. В конечном итоге, я бы сказал: используйте тот стиль, который вам больше нравится, это всего лишь вопрос личного вкуса.
Лично я стараюсь использовать CamelCase для классов, mixedCase для методов и функций. Переменные обычно разделяются знаком подчеркивания (когда удается это запомнить). Таким образом, я могу с первого взгляда понять, что именно я вызываю, вместо того чтобы все выглядело одинаково.
Возможно, вам будет полезно ознакомиться с этой статьей: http://www.cs.kent.edu/~jmaletic/papers/ICPC2010-CamelCaseUnderScoreClouds.pdf.
Кратко: в статье утверждается, что snake_case более читаем, чем camelCase. Именно поэтому современные языки программирования используют (или должны использовать) snake_case там, где это возможно.
В Python существует стандарт принятия имен для переменных и функций, который помогает улучшить читаемость кода.
Переменные и функции пишутся в нижнем регистре, как показано ниже:
name = "John"
def display(name): print("John")
Если название состоит из нескольких слов, слова разделяются с помощью нижнего подчеркивания "_":
first_name = "John"
def display_first_name(first_name): print(first_name)
Если переменная является константой, она пишется в верхнем регистре:
FIRST_NAME = "John"
Следуя этим правилам, вы сделаете свой код более понятным и легким для восприятия другими разработчиками.
Какова цель переменной с одним подчеркиванием "_" в Python?
Почему используется string.join(list), а не list.join(string)?
Создание словаря с помощью генератора словарей
Как получить полный путь к директории текущего файла?
Найти все файлы с расширением .txt в директории на Python