Соглашения об именах в библиотеке Python - PullRequest
1 голос
/ 03 октября 2008

Я реализую алгоритм поиска (назовем его MyAlg) в пакете Python. Поскольку алгоритм очень сложен, пакет должен содержать вспомогательный класс для параметров алгоритма. В настоящее время я разрабатываю весь пакет самостоятельно (и я не программист), однако я ожидаю, что 1-2 программиста присоединятся к проекту позже. Это будет мой первый проект, в котором будут участвовать внешние программисты. Таким образом, чтобы облегчить им жизнь, как мне назвать этот класс: Options, OptionsMyAlg, MyAlgOptions или что-нибудь еще?

Что бы вы предложили мне прочитать в этой теме, кроме http://www.joelonsoftware.com/articles/Wrong.html?

Спасибо Юрий [добавлено здесь: http://discuss.joelonsoftware.com/default.asp?design.4.684669.0 обновит ответы в обоих местах]

Ответы [ 3 ]

6 голосов
/ 03 октября 2008

Я предлагаю вам прочитать PEP8 (руководство по стилю для кода Python).

2 голосов
/ 03 октября 2008

Если все это умещается в одном файле, назовите класс Options. Тогда ваши пользователи могут написать:

import myalg

searchOpts = myalg.Options()
searchOpts.whatever()

mySearcher = myalg.SearchAlg(searchOpts)
mySearcher.search("where's waldo?")

Обратите внимание, что в Руководстве по стилю Python, указанном в другом ответе, предлагается, чтобы пакеты назывались со всеми строчными буквами.

2 голосов
/ 03 октября 2008

Просто назвав его Options должно быть в порядке. Стандартная библиотека Python, как правило, использует философию, согласно которой пространства имен позволяют легко и удобно управлять разными пакетами с одинаковыми именами. Например, open является как встроенным, так и функцией в модуле os, несколько различных модулей определяют класс исключений Error и т. Д.

Вот почему обычно считается плохим выражением говорить from some_module import *, поскольку неясно, к какому open относится ваш код и т. Д.

...