Объяснить точки входа Python?

Он работает следующим образом:

  1. s1 неявно преобразуется в строку (s1.toString()), в результате получается [Ljava.lang.String;@2a139a55.
  2. Далее строка 1 добавляется к указанной выше строке. Это приводит к [Ljava.lang.String;@2a139a55 1
  3. Затем эта результирующая строка передается внутри одноэлементного массива типа String [] в функцию varargs().
167
задан Jean-François Corbett 28 August 2017 в 07:17
поделиться

2 ответа

«Точка входа» - это, как правило, функция (или другой вызываемый функциональный объект), который может захотеть использовать разработчик или пользователь вашего пакета Python, хотя не вызываемый объект может быть также предоставляется в качестве точки входа (как правильно указано в комментариях!).

Самым популярным видом точки входа является точка входа console_scripts , которая указывает на функцию, которую вы хотите сделать доступной в качестве инструмента командной строки для тех, кто устанавливает ваш пакет. Это входит в ваш setup.py как:

entry_points={
    'console_scripts': [
        'cursive = cursive.tools.cmd:cursive_command',
    ],
},

У меня есть только что развернутый пакет, который называется cursive.tools, и я хотел, чтобы он сделал доступной команду «cursive», которую кто-то может запустить из командной строки, например :

$ cursive --help
usage: cursive ...

Способ сделать это - определить функцию, например, функцию «cursive_command» в cursive / tools / cmd. пи, которая выглядит как:

def cursive_command():
    args = sys.argv[1:]
    if len(args) < 1:
        print "usage: ..."

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

Установить пакет docutils для отличный пример использования точки входа: он установит что-то вроде полдюжины полезных команд для преобразования документации Python в другие форматы.

155
ответ дан 23 November 2019 в 20:59
поделиться

С абстрактной точки зрения точки входа используются для создания общесистемного реестра вызовов Python, которые реализуют определенные интерфейсы , В pkg_resources есть API для просмотра того, какие точки входа объявляются данным пакетом, а также API для определения того, какие пакеты рекламируют определенную точку входа.

Точки входа полезны для того, чтобы один пакет мог использовать плагины, которые есть в другом пакете. Например, проект Яна Бикинга Paste широко использует точки входа. В этом случае вы можете написать пакет, который рекламирует свою фабрику приложений WSGI, используя точку входа paste.app_factory .

Другое использование точек входа - перечисление всех пакетов в системе, которые предоставляют некоторые функциональные возможности плагинов. Веб-инфраструктура TurboGears использует точку входа python.templating.engines для поиска библиотек шаблонов, которые установлены и доступны.

16
ответ дан 23 November 2019 в 20:59
поделиться
Другие вопросы по тегам:

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