Соглашения об именах Python — это набор рекомендаций, установленных в PEP8, официальном руководстве по стилю Python. Эти рекомендации устанавливают стандарт того, как мы называем переменные, функции, классы, модули и другие идентификаторы.
Хотя эти соглашения не соблюдаются интерпретатором Python, их соблюдение считается признаком хорошей практики кодирования. Они помогают сделать ваш код понятным, более читабельным и удобным в сопровождении, тем самым повышая общее качество вашего кода.
Наиболее фундаментальные правила в соглашениях об именах Python:
- Имена чувствительны к регистру.
- Имена не могут начинаться с цифры.
- Имена могут содержать буквы, цифры и символы подчеркивания.
Приемлемый | var, var, var, var, var1, var2, var3 |
Недопустимо | 1var, var-name, var name |
- Имена, которых следует избегать
- Стили именования программирования
- Соглашения об именах глобальных переменных
- Соглашения об именах классов
- Соглашение об именовании методов класса
- Соглашение об именовании атрибутов классов
- Соглашение об именах файлов классов
- Соглашение об именовании экземпляров классов
- Соглашения об именах объектов
- Соглашения об именах переменных
- Соглашение об именах функций
- Заключение
Имена, которых следует избегать
Никогда не используйте символы «l»(строчная буква «el»), «O»(прописная буква «oh») или «I»(прописная буква «глаз») в качестве односимвольных имен переменных. В некоторых шрифтах их можно легко принять за «1»(единица), «0»(ноль) и «|».(труба) соответственно.
Зарезервированные слова в Python не могут использоваться в качестве имен переменных. К ним относятся «for», «пока», «если», «иначе» и т. д.
Стили именования программирования
В Python используется несколько стилей:
- Змеиный регистр: в змеином регистре все слова разделены строчными буквами. В основном это используется для имен функций и переменных.
Пример: user_name, my_function
- Регистр Pascal: регистр Pascal аналогичен регистру Camel, но начинается с заглавной буквы. Это используется для имен классов в Python.
Пример: ClassName, MyClass
- Верблюжий регистр: в верблюжьем регистре первая буква каждого слова, за исключением первого слова, пишется с заглавной буквы. Это обычно не используется в Python.
Пример: myVariable, isInstance
- Верхний регистр с подчеркиванием: используется для констант в Python.
Пример: PI, MAX_OVERFLOW
Вот табличное представление различных типов случаев:
Тип корпуса | Описание | Пример |
---|---|---|
Змеиный стиль | Все слова в нижнем регистре, разделенные подчеркиванием | my_function, user_input |
Паскаль стиль | Первая буква каждого слова пишется с заглавной буквы, кроме первого слова. | MyClass, AnotherClass |
Верблюжий стиль | Первая буква каждого слова пишется с заглавной буквы, кроме первого слова. | myVariable, isInstance |
Верхний регистр с подчеркиванием | Все буквы в верхнем регистре, слова разделяются подчеркиванием. | MAX_OVERFLOW, TOTAL |
Придерживаясь этих соглашений об именах, ваш код Python станет более читаемым, удобным в сопровождении и будет соответствовать стандартам сообщества.
Соглашения об именах глобальных переменных
В Python переменная, объявленная вне функции или блока кода, называется глобальной переменной. Доступ к этим глобальным переменным может осуществляться любой функцией программы.
Когда дело доходит до именования глобальных переменных в Python, руководство по стилю PEP8 содержит четкие рекомендации.
По соглашению глобальные переменные должны называться в стиле Snake_case. Это означает, что если имя вашей переменной состоит из нескольких слов, они должны быть написаны строчными буквами и разделены подчеркиванием.
Вот пример:
# Correct way global_variable = "I'm a global variable"
Тем не менее, важно отметить, что использования глобальных переменных обычно следует избегать, поскольку они могут привести к путанице в коде и могут привести к ошибкам.
В тех случаях, когда вам нужны константы (т. е. переменные, значения которых не изменяются), в Python принято использовать заглавные буквы и отдельные слова с подчеркиванием. Технически это тоже глобальные переменные, но у них разные варианты использования.
Вот пример:
# Correct way MAX_SIZE = 100 PI_VALUE = 3.14159
Как мы видим выше, такие константы, как MAX_SIZE и PI_VALUE, указаны в верхнем регистре, что подчеркивает, что их не следует изменять.
Соглашения об именах классов
В Python соглашение об именах классов — PascalCase, что означает, что первая буква каждого слова пишется с заглавной буквы и между словами нет подчеркиваний.
Вот пример:
# Correct way class MyNewClass: pass # Incorrect way class my_new_class: pass
Соглашение об именовании методов класса
Методы в классах Python должны называться с использованием Snake_case. Это означает, что все слова должны быть написаны строчными буквами и разделены подчеркиванием.
Вот пример:
class MyClass: def my_method(self): pass
Соглашение об именовании атрибутов классов
Подобно методам, атрибуты класса(переменные, определенные в классе) также должны быть названы с использованием Snake_case в Python.
Вот пример:
class MyClass: my_attribute = 10
Соглашение об именах файлов классов
При именовании файлов Python, содержащих классы, вы также должны следовать соглашению Snake_case. Это помогает сделать его понятным и читабельным, особенно при импорте модулей.
Соглашение об именовании экземпляров классов
При создании экземпляров класса(также известного как объекты) в Python рекомендуется также использовать Snake_case. Это обеспечивает согласованность с остальными переменными.
Вот пример:
class MyClass: pass my_class_instance = MyClass()
Соглашения об именах объектов
Объекты в Python — это экземпляры определенного вами класса. Соглашение об именовании объектов Python соответствует тем же правилам, что и обычные переменные.
Когда вы создаете объект, имя должно быть в Snake_case, что означает, что все слова пишутся строчными буквами и разделяются символами подчеркивания. Имя должно быть описательным, поясняя, что представляет собой объект. Избегайте использования ключевых слов Python и имен функций в качестве имен объектов.
Давайте рассмотрим класс с именем Car:
class Car: def __init__(self, color, make, model): self.color = color self.make = make self.model = model
При создании объекта (или экземпляра) класса Car имя должно соответствовать соглашению Snake_case. Вот пример:
# Correct way my_car = Car('red', 'Toyota', 'Corolla') # Incorrect way MyCar = Car('red', 'Toyota', 'Corolla') myCar = Car('red', 'Toyota', 'Corolla')
В приведенном выше примере my_car ясно сообщает, что это экземпляр автомобиля, и следует соглашению об именах Snake_case.
Соглашения об именах переменных
В Python имена переменных соответствуют соглашению об именах Snake_case согласно руководству по стилю PEP8. Это означает, что все слова в имени написаны строчными буквами и каждое слово отделяется подчеркиванием.
Вот пример:
# Correct way my_variable = 10 # Incorrect way myVariable = 10 MyVariable = 10
Вот еще несколько рекомендаций по именованию переменных в Python:
- Имена переменных должны быть описательными и содержательными, чтобы сделать код более читабельным и понятным.
Например, если у вас есть переменная, содержащая количество пользователей, num_users будет ясным и понятным выбором.
num_users = 500
- Избегайте использования в циклах односимвольных имен переменных, за исключением распространенных, таких как i или j.
for i in range(10): print(i)
- Не начинайте имена переменных с цифры или специального символа.
# Incorrect 123abc = "Hello" @name = "Hello" # Correct abc123 = "Hello" name = "Hello"
- Избегайте использования ключевых слов Python и имен функций в качестве имен переменных. Например, не называйте свой список переменных, dict, str, print и т. д.
# Incorrect list = [1, 2, 3] # Correct my_list = [1, 2, 3]
Соглашение об именах функций
В Python имена функций соответствуют соглашению об именах Snake_case согласно руководству по стилю PEP8. Это означает, что все слова должны быть написаны строчными буквами и каждое слово отделяется подчеркиванием.
Вот пример:
# Correct way def my_function(): pass # Incorrect way def MyFunction(): pass def myFunction(): pass
Вот еще несколько рекомендаций по именованию функций в Python:
- Описательные имена: Имена функций должны быть описательными и указывать назначение функции. Это улучшает читаемость и понимание кода.
# Correct way def calculate_average(): pass # Incorrect way def func1(): pass
В приведенном выше примере Calculate_average дает четкое представление о том, что должна делать функция, тогда как func1 не предоставляет никакого значимого контекста.
- Избегайте использования ключевых слов Python и имен функций. Не называйте свою функцию так же, как ключевые слова Python или существующие имена функций. Это может привести к нежелательному поведению и путанице.
# Incorrect def print(): pass # Correct def print_custom_message(): pass
- Используйте слова действия. Поскольку функции обычно выполняют действие, рекомендуется начинать имя функции с глагола. Это сразу дает представление о том, какое действие выполняет функция.
# Correct def get_total(): pass # Correct def print_report(): pass
Заключение
Соблюдение соглашений об именах Python — важнейший аспект написания чистого, профессионального и эффективного кода. Это делает ваш код более читабельным и понятным не только для других, но и для вас самих в будущем.
Соглашения об именах Python, изложенные в руководстве по стилю PEP8, дают четкие указания о том, как следует называть такие идентификаторы, как переменные, функции, классы, методы, модули и другие элементы. Сюда входят такие методы, как использование Snake_case для переменных и функций, PascalCase для классов и UPPER_CASE_WITH_UNDERSCORES для констант.
Однако важно помнить, что эти соглашения являются рекомендациями, а не строгими правилами, налагаемыми языком. Они созданы для того, чтобы обеспечить общую структуру для всех программистов Python, обеспечивая согласованность и читаемость кода во всем сообществе Python. В определенных ситуациях могут быть причины немного отклониться от этих соглашений, например, при сохранении устаревшего кода или когда команда согласовала конкретные изменения для своего проекта.
В конце концов, основная цель использования этих соглашений — написать код, который легко читать, понимать и поддерживать. Используя понятные, описательные имена, вы можете сделать свой код понятным, уменьшив необходимость в чрезмерных комментариях и упрощая другим(и вам в будущем) быстрое понимание назначения различных частей вашего кода.