Какие аббревиатуры мы должны использовать для имен переменных python?

Обычно я использую стандартное именование, указанное в PEP-8 для переменных. Подобно:

delete_projects connect_server 

Однако иногда я не могу найти доброго имени, а имя просто доходит до длинного:

 project_name_to_be_deleted 

Я мог бы использовать pr_nm_del , но это делает код нечитаемым. Я действительно страдаю от поиска хороших имен переменных для функций. Всякий раз, когда я начинаю писать новую функцию, я просто потратил время на поиск хорошего имени переменной.

Есть ли какой-либо стандарт для выбора определенных сокращений для известных имен переменных, таких как delete,project,configuration, etc. ? Как вы выбираете короткие, но хорошие и читаемые имена переменных?

Этот вопрос может не зависеть напрямую от Python, но поскольку разные языки программирования используют разные форматирования имен переменных, я думал, что ограничиваю этот вопрос только Python .

5 Solutions collect form web for “Какие аббревиатуры мы должны использовать для имен переменных python?”

pr_nm_del ? Вы могли бы также позволить коту назвать это. Я считаю, что аббревиатуры следует избегать любой ценой, кроме известных / очевидных (например, del , как указано в комментариях, – это даже ключевое слово языка!), Которые сохраняют много печатания.

Но это не означает слишком многословных идентификаторов. Так же, как контекст имеет важное значение для понимания утверждений на естественных языках, идентификаторы часто могут быть намного короче (и столь же понятными), ссылаясь на контекст. В вашем примере project_name отлично – процедура уже называется delete_project , поэтому delete_project , очевидно, относится к имени проекта, который нужно удалить. Даже одно name может быть прекрасным. Не нужно _to_be_deleted это снова, добавив _to_be_deleted .

Это проблема, которая решает сам, когда вы делаете ООП. Объект ( project, configuration ) – это класс, а глагол ( delete, etc ) – это имя метода, то есть:

 class Workspace(object): def delete_project(self, project): log.info("Deleting", project.name) ... 

Я думаю, что длинные имена приемлемы, если они носят описательный характер. С хорошим редактором / IDE короткие имена не могут сохранить ввод, а длинные, но описательные имена могут сэкономить время на чтение вашего кода. Таким образом, длина времени чтения имени намного важнее фактической длины имени.

Что касается вашего примера, project_name_to_be_deleted отлично. Если вы хотите сократить его, я предлагаю использовать project_name_to_del так как del – известная аббревиатура для delete (вы даже можете найти это на своей клавиатуре). И использование conf как configuration также популярно. Но не ходите дальше. Например, proj2del – это не очень хорошая идея.

Кроме того, для внутренних / локальных вещей прекрасно использовать короткие, но не описательные имена.

В вашем примере у вас есть функция, называемая delete_project. Хотите узнать, как вызывать переменную, которая хранит проект для удаления? Просто «проект»!

 def delete_project(self, project): del self.projects[project] 

Просто.

Имена переменных не обязательно должны быть полностью описательными. Контекст может многое одолжить тому, как мы понимаем конкретное имя в определенный момент времени. Не нужно говорить «это проект, который нужно удалить» при обсуждении функции, удаляющей проект.

Если вы находите имена функций слишком длинными, они, вероятно, слишком много делают. Если вы обнаружите, что имена переменных становятся слишком длинными, подумайте о своей цели в текущем контексте и посмотрите, может ли подразумеваться часть имени.

Очень немногие имена имеют «стандартные» сокращения. То, что вы считаете «общим» или «стандартным», не является тем же самым для кого-то другого. Время, потраченное на установление хорошего имени, хорошо инвестировано, поскольку код читается гораздо чаще, чем он написан. В качестве примера я видел «конфигурацию», сокращенную как «config» «cnfg» «cfg» «cnf» … так что урок – не сокращайте, если не существует очень хорошо известной аббревиатуры!

  • Что делает символ «at» (@) в Python?
  • В Python, как я использую подпроцесс вместо os.system?
  • Рассуждение за синтаксисом `from ... import ...` в Python
  • Что делает squiggle (тильда), т.е. оператор `~` в Python?
  • В Python 2 в чем разница между «/» и «//» при использовании для разделения?
  • Может кто-нибудь объяснить __all__ в Python?
  • Java и прокси-синтаксис (ala Python)?
  • Ошибка Python слишком большого количества аргументов
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.