Вы можете определить переменную класса с тем же именем, что и переменная экземпляра.Эта переменная класса будет затем скрыта переменной экземпляра при ее установке.Например:
class Foo(object):
#: Doc comment for availableruns
availableruns = ()
def __init__(self, base):
...
self.availableruns = tuple(sorted(temp))
Действительно, если переменная экземпляра имеет полезное неизменное значение по умолчанию (например, Нет или пустой кортеж), тогда вы можете сэкономить немного памяти, просто не устанавливаяпеременная if должна иметь значение по умолчанию.Конечно, этот подход не будет работать, если вы говорите о переменной экземпляра, которую вы, возможно, захотите удалить (например, del foo.availableruns
) - но я считаю, что это не очень распространенный случай.
Есливы используете sphinx, и у вас установлен "autoattribute", тогда это должно быть соответствующим образом задокументировано.Или, в зависимости от контекста того, что вы делаете, вы можете просто напрямую использовать директиву Sphinx .. py:attribute::
.