Какое соглашение об именах в Python для имен переменных и функций?

динамическая ссылка создания и нажмите ее с атрибутом загрузки для загрузки силы как файл:

var anchor = document.createElement('a');
anchor.href = this.props.download_url;
anchor.target = '_blank';
anchor.download = this.props.file_name;
anchor.click();

Обратите внимание, что я даже не добавил его в DOM, так что это быстро.

Атрибут PS download не будет работать с IE. Но он просто откроет ссылку на новой вкладке. http://caniuse.com/#feat=download

679
задан SilentGhost 25 April 2010 в 11:29
поделиться

10 ответов

См. Python PEP 8 .

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

mixedCase позволяется только в контекстах, где это уже - преобладающий стиль

Переменные...

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

Лично, я отклоняюсь от этого, потому что я также предпочитаю mixedCase [более чем 111] для моих собственных проектов.

793
ответ дан Blair Conrad 25 April 2010 в 11:29
поделиться

David Goodger (в "Коде Как Pythonista" здесь ) описывает PEP 8 рекомендаций следующим образом:

  • joined_lower для функций, методов, атрибутов, переменные

  • joined_lower или ALL_CAPS для констант

  • StudlyCaps для классов

  • camelCase только для приспосабливания существующим ранее соглашениям

223
ответ дан unmounted 25 April 2010 в 11:29
поделиться

Как упомянуто, PEP 8 говорит для использования lower_case_with_underscores для переменных, методов и функций.

я предпочитаю использовать lower_case_with_underscores для переменных и mixedCase для методов, и функции делает код более явным и читаемым. Таким образом после Дзэн Python , "явного, лучше, чем неявные" и "Количества удобочитаемости"

29
ответ дан claytron 25 April 2010 в 11:29
поделиться

Существует PEP 8, поскольку другие ответы показывают, но PEP 8 является только styleguide для стандартной библиотеки, и это только взято в качестве евангелия там. Одно из самых частых отклонений PEP 8 для других частей кода является переменным именованием, специально для методов. Нет никакого сингла, преобладают стиль, хотя рассматривая объем кода, который использует mixedCase, если бы нужно было сделать строгую перепись, то можно было бы, вероятно, закончить с версией PEP 8 с mixedCase. Существует мало другого отклонения от PEP 8, который является вполне как распространенный.

32
ответ дан Thomas Wouters 25 April 2010 в 11:29
поделиться

Лично я пытаюсь использовать CamelCase для классов, mixedCase методы и функции. Переменные являются обычно разделенным подчеркиванием (когда я могу помнить). Таким образом, я могу сказать сразу, что точно я называю, а не все выглядеть одинаково.

17
ответ дан crystalattice 25 April 2010 в 11:29
поделиться

Большинство людей Python предпочитает подчеркивания, но даже я использую Python больше чем с 5 лет прямо сейчас, мне все еще не нравятся они. Они просто выглядят ужасными мне, но возможно это - весь Java в моей голове.

мне просто нравится CamelCase лучше, так как он соответствует лучше способу, которым называют классы, чувствует себя более логичным иметь SomeClass.doSomething(), чем SomeClass.do_something(). Если Вы будете озираться в глобальном индексе модуля в Python, Вы найдете обоих, который является вследствие того, что это - набор библиотек из различных источников, которые вырастили сверхурочное время и не что-то, что было разработано одной компанией как Sun со строгими правилами кодирования. Я сказал бы, что нижняя строка: Используйте то, что Вы любите лучше, это - просто вопрос персонального вкуса.

16
ответ дан cxrodgers 25 April 2010 в 11:29
поделиться

Стиль кодирования обычно является частью внутренних стандартов политики/соглашения организации, но я думаю в целом, стиль all_lower_case_underscore_separator (также названный snake_case) наиболее распространен в Python.

3
ответ дан Shawn Mehan 25 April 2010 в 11:29
поделиться

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

0
ответ дан yfeldblum 25 April 2010 в 11:29
поделиться

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

0
ответ дан 22 November 2019 в 21:33
поделиться

Как признается в Руководстве по стилю для кода Python

Соглашения об именах для Python {{ 1}} - это немного беспорядок, поэтому мы никогда не получим этого полностью согласованного

. Обратите внимание, что это относится только к стандартной библиотеке Python . Если они не могут получить этот согласованный, то вряд ли есть много надежды на то, что у всего кода Python будет общепринятое соглашение, не так ли?

Отсюда, и обсуждение здесь, я бы пришел к выводу, что это не ужасный грех, если кто-то продолжает использовать, например, Соглашения Java или C # (ясные и хорошо зарекомендовавшие себя) об именах для переменных и функций при переходе на Python. Помня, конечно, что лучше всего придерживаться того стиля, который преобладает в кодовой базе / проекте / команде. Как указано в Руководстве по стилю Python, внутренняя согласованность имеет наибольшее значение.

Не стесняйтесь называть меня еретиком. :-) Как и OP, я не "Pythonista", во всяком случае, еще нет.

41
ответ дан 22 November 2019 в 21:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: