Уведомления

Группа в Telegram: @pythonsu

#1 Март 22, 2011 20:11:10

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как создать строки документации не для функции или класса?

class Tb:
pass
class Ta(object):
"Ta description"
def f(self):
"f description"
pass
a_var=5 # a_var decription
b_var=Tb() # b_var decription
В системах документирования java, c++, c# можно документировать не только функции но и переменные
А как это делать в Питоне?

Иначе говоря - есть какой нибудь общепринятый способ?



Офлайн

#2 Март 22, 2011 20:29:27

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Как создать строки документации не для функции или класса?

Нет. Чаще всего их описывают в “Ta description”



Офлайн

#3 Март 22, 2011 20:36:13

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как создать строки документации не для функции или класса?

Большое спасибо Андрей.
Я в настоящее время договорился с разработчиками о том что в классах будут
словари __description__, и __units__ которые заполняются декораторами или из БД. Но думал что есть более прямой ход. У меня просто бывают классы с несколькими десятками полей (до сотни)- это один в один отображение той системы которую они моделируют.



Офлайн

#4 Март 22, 2011 21:11:56

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Как создать строки документации не для функции или класса?

Посмотри Epydoc.
Ничего умнее предложить не могу.
Можно документирование выносить в интерфейсы (zope.interface и zope.schema). В качестве бонуса появится валидация атрибутов объекта :-).

..bw



Офлайн

#5 Март 22, 2011 23:00:42

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Как создать строки документации не для функции или класса?

sphinx в последних версиях умеет описывать. Примерно так

#: Это документация к переменной модуля
#: и она может быть многострочной
SOME_VAR = 'asdf'

class A(object):
#: Это документация для A.c
#: тоже многострочная
c = 3

def __init__(self):
self.a = 1
#: Это документация для A.b
#: тоже многострочная
self.b = 2



Офлайн

#6 Март 23, 2011 07:18:04

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как создать строки документации не для функции или класса?

То что сфинккс умеет описывать, это хорошо, буду использовать. Но тут речь шла в большей степени о том, чтобы в программе использовать описания переменных. У меня есть модулечек - редактор объектов. Применяется к любому объекту в программе - дает представление почти любого объекта в виде дерева (wx.gizmos.TreeListCtrl). Но там кроме идентификаторов желательно описание и размерность. Пользователи постепенно приучаются пользоваться этим деревом для просмотра и задания данных (оно может появиться в разных местах программы).



Офлайн

#7 Март 23, 2011 07:22:32

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Как создать строки документации не для функции или класса?

Тогда однозначно - zope.interface



Офлайн

#8 Март 23, 2011 07:31:58

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как создать строки документации не для функции или класса?

Ок посмотрю, спасибо, повидимому надо будет ставить zope.



Офлайн

#9 Март 23, 2011 07:33:44

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Как создать строки документации не для функции или класса?

Нет, не zope. Только интерфейсы от него. Это - отдельный пакет, который, насколько помню, ни от чего не зависит.
pip или easy_install справляются с установкой “на ура”.

http://pypi.python.org/pypi/zope.interface



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version