Существуют ли стандартные псевдонимы для модулей в Python? - PullRequest
0 голосов
/ 06 декабря 2018

Следуя рекомендациям, предложенным в этом сообщении , я изменяю все

from module import function
function(agt)

на:

import module as mdl
mdl.function(agt)

в моих кодах.Я пытаюсь использовать часто используемые псевдонимы, а не личные.Есть ли какой-нибудь список в интернете, в котором суммированы все хорошо используемые псевдонимы?

Например, они довольно распространены:

import numpy as np
import math as m
import matplotlib.pyplot as plt

А как насчет псевдонимов для * 1014?*, time, scipy.io, cmath и так далее?Что вы используете?Не стесняйтесь давать другие псевдонимы, если такой список еще не существует, я готов предложить один (я обновлю этот пост).

1 Ответ

0 голосов
/ 06 декабря 2018

Нет, нет полного списка аббревиатур модулей

Нет канонического списка, и я бы не советовал делать его здесь (ТАК, на самом деле, не место для этогоИМО).Руководства по стилю, включая соглашения об именах, определены в PEP8 для python, а раздел об импорте - здесь .Хороший и полезный совет, но не перечисляемый список псевдонимов импорта.

Существует множество хороших правил и советов по именованию, некоторые из которых применимы и к импортированным именам. Этот пост , например, я думаю, может привести нас к неудивительной этимологии «Math Plotting Library» в «mpl».После PEP8 в именах модулей может помочь нам вообще не нуждаться в сокращениях.

Обратите внимание, что вы смешали встроенные модули ("time")со стандартными, но сторонними библиотеками ("numpy", вездесущим, но Гвидо отказался в 2006 году добавить в ядро ​​ и должен быть установлен отдельно) и общими сторонними библиотеками ("matplotlib«) 6 .Вы можете найти список встроенных и чрезвычайно распространенных библиотек (или непрямых через учебные пособия), но включение сторонних библиотек представляется гораздо менее вероятным;Я бы посоветовал разрешить авторам пакетов определять свои стандартные сокращения .Numpy - хороший пример библиотеки, авторы которой используют «np» в своих собственных уроках и «стандартизировали» синтаксис использования своих библиотек.

FWIW, я не люблю называть математику «m» (или как однукомментатор предлагает, "ос как о");Переменные с одним именем - это рецепт катастрофы для таких неуклюжих программистов, как я ...


Я бы также указал на обоснование для включения синтаксиса "as" в первую очередь , что оправдывает это, устраняя возможные конфликты имен (если вы импортируете cos из scipy и из sympy, у вас может быть плохое время).Использование его для сокращения имен, которые уже соответствуют стандарту именования PEP (короткие и удобочитаемые для начала), не похоже на официальное одобрение, даже если это удобно.

В забавном примере: здесь , sympy и scipy оба пытались какое-то время использовать одну и ту же аббревиатуру, вызывая ту проблему, которую мы надеялись избежать (хотя scipy теперь советует не использовать аббревиатурувообще, очевидно )


Сноски

  1. У Google также есть руководство по стилю; они предлагают , используя import...as "только когда [это] стандартное сокращение (например, np для numpy)".Извините, они тоже откладывают:)
  2. Не придираться, но ваш вопрос гласит: «Я изменяю все the ... [операторы импорта]» (выделено мое).Чтобы быть ясным, вопрос, который вы связываете, говорит: «Выбор между тем или другим должен быть основан на стиле кодирования».Бывают случаи, когда импорт функции или класса напрямую совершенно однозначен, imo.Например, пример sklearn tutorial , который включает импорт «GaussianProcessRegressor», не требует каких-либо пространств имен или сокращений.Только вы можете знать о вашем приложении, но в большинстве случаев безопасно предположить, что это имя достаточно уникально
  3. Это также может быть использовано в качестве хака версий .Я иногда использую его таким образом, но я не уверен, насколько рекомендуется эта стратегия
  4. Некоторые люди получают техническую информацию о разговорном использовании слова "псевдоним"
  5. Reddit также не имеет списка
  6. Чтобы прояснить вопрос из комментариев, строка между «третьим лицом, но стандартным» и «третьим лицом» очень неформальна и не должна быть священной
...