динамическая ссылка создания и нажмите ее с атрибутом загрузки для загрузки силы как файл:
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
См. Python PEP 8 .
Имена функций должны быть нижним регистром со словами, разделенными подчеркиваниями по мере необходимости для улучшения удобочитаемости.
mixedCase позволяется только в контекстах, где это уже - преобладающий стиль
Переменные...
Использование правила именования функции: нижний регистр со словами, разделенными подчеркиваниями по мере необходимости для улучшения удобочитаемости.
Лично, я отклоняюсь от этого, потому что я также предпочитаю mixedCase
[более чем 111] для моих собственных проектов.
David Goodger (в "Коде Как Pythonista" здесь ) описывает PEP 8 рекомендаций следующим образом:
joined_lower
для функций, методов, атрибутов, переменные
joined_lower
или ALL_CAPS
для констант
StudlyCaps
для классов
camelCase
только для приспосабливания существующим ранее соглашениям
Как упомянуто, PEP 8 говорит для использования lower_case_with_underscores
для переменных, методов и функций.
я предпочитаю использовать lower_case_with_underscores
для переменных и mixedCase
для методов, и функции делает код более явным и читаемым. Таким образом после Дзэн Python , "явного, лучше, чем неявные" и "Количества удобочитаемости"
Существует PEP 8, поскольку другие ответы показывают, но PEP 8 является только styleguide для стандартной библиотеки, и это только взято в качестве евангелия там. Одно из самых частых отклонений PEP 8 для других частей кода является переменным именованием, специально для методов. Нет никакого сингла, преобладают стиль, хотя рассматривая объем кода, который использует mixedCase, если бы нужно было сделать строгую перепись, то можно было бы, вероятно, закончить с версией PEP 8 с mixedCase. Существует мало другого отклонения от PEP 8, который является вполне как распространенный.
Лично я пытаюсь использовать CamelCase для классов, mixedCase методы и функции. Переменные являются обычно разделенным подчеркиванием (когда я могу помнить). Таким образом, я могу сказать сразу, что точно я называю, а не все выглядеть одинаково.
Большинство людей Python предпочитает подчеркивания, но даже я использую Python больше чем с 5 лет прямо сейчас, мне все еще не нравятся они. Они просто выглядят ужасными мне, но возможно это - весь Java в моей голове.
мне просто нравится CamelCase лучше, так как он соответствует лучше способу, которым называют классы, чувствует себя более логичным иметь SomeClass.doSomething()
, чем SomeClass.do_something()
. Если Вы будете озираться в глобальном индексе модуля в Python, Вы найдете обоих, который является вследствие того, что это - набор библиотек из различных источников, которые вырастили сверхурочное время и не что-то, что было разработано одной компанией как Sun со строгими правилами кодирования. Я сказал бы, что нижняя строка: Используйте то, что Вы любите лучше, это - просто вопрос персонального вкуса.
Стиль кодирования обычно является частью внутренних стандартов политики/соглашения организации, но я думаю в целом, стиль all_lower_case_underscore_separator (также названный snake_case) наиболее распространен в Python.
Как правило, каждый следует соглашениям, используемым в стандартной библиотеке языка.
Я лично использую соглашения о присвоении имен Java при разработке на других языках программирования, поскольку это последовательно и легко следовать. Тем путем я непрерывно не борюсь по тому, какие конвенции использовать, который не должен быть самой твердой частью моего проекта!
Как признается в Руководстве по стилю для кода Python
Соглашения об именах для Python {{ 1}} - это немного беспорядок, поэтому мы никогда не получим этого полностью согласованного
. Обратите внимание, что это относится только к стандартной библиотеке Python . Если они не могут получить этот согласованный, то вряд ли есть много надежды на то, что у всего кода Python будет общепринятое соглашение, не так ли?
Отсюда, и обсуждение здесь, я бы пришел к выводу, что это не ужасный грех, если кто-то продолжает использовать, например, Соглашения Java или C # (ясные и хорошо зарекомендовавшие себя) об именах для переменных и функций при переходе на Python. Помня, конечно, что лучше всего придерживаться того стиля, который преобладает в кодовой базе / проекте / команде. Как указано в Руководстве по стилю Python, внутренняя согласованность имеет наибольшее значение.
Не стесняйтесь называть меня еретиком. :-) Как и OP, я не "Pythonista", во всяком случае, еще нет.