Найти - Пользователи
Полная версия: Как создать строки документации не для функции или класса?
Начало » Python для новичков » Как создать строки документации не для функции или класса?
1
doza_and
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# можно документировать не только функции но и переменные
А как это делать в Питоне?

Иначе говоря - есть какой нибудь общепринятый способ?
Андрей Светлов
Нет. Чаще всего их описывают в “Ta description”
doza_and
Большое спасибо Андрей.
Я в настоящее время договорился с разработчиками о том что в классах будут
словари __description__, и __units__ которые заполняются декораторами или из БД. Но думал что есть более прямой ход. У меня просто бывают классы с несколькими десятками полей (до сотни)- это один в один отображение той системы которую они моделируют.
bw
Посмотри Epydoc.
Ничего умнее предложить не могу.
Можно документирование выносить в интерфейсы (zope.interface и zope.schema). В качестве бонуса появится валидация атрибутов объекта :-).

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

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

def __init__(self):
self.a = 1
#: Это документация для A.b
#: тоже многострочная
self.b = 2
doza_and
То что сфинккс умеет описывать, это хорошо, буду использовать. Но тут речь шла в большей степени о том, чтобы в программе использовать описания переменных. У меня есть модулечек - редактор объектов. Применяется к любому объекту в программе - дает представление почти любого объекта в виде дерева (wx.gizmos.TreeListCtrl). Но там кроме идентификаторов желательно описание и размерность. Пользователи постепенно приучаются пользоваться этим деревом для просмотра и задания данных (оно может появиться в разных местах программы).
Андрей Светлов
Тогда однозначно - zope.interface
doza_and
Ок посмотрю, спасибо, повидимому надо будет ставить zope.
Андрей Светлов
Нет, не zope. Только интерфейсы от него. Это - отдельный пакет, который, насколько помню, ни от чего не зависит.
pip или easy_install справляются с установкой “на ура”.

http://pypi.python.org/pypi/zope.interface
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB