[Python-Dev] Attribute docstrings [was: One-line abstractmethod function?]
Stephen J. Turnbull
stephen at xemacs.org
Sat Dec 7 02:05:07 CET 2013
Reply-To set to python-ideas at python.org.
Terry Reedy writes:
> For data attributes, which are usually mutable, it should be attached to
> the attribute *concept*, which is represented by the name, rather than
> the current but usually changeable value. Values are usually already
> documented either by a value representation or a docstring. This could
> be done with a string subclass that is used as needed.
>
> For methods, the value is nearly always constant. When multiple methods
> share the same function, they usually also share the same name, and
> represent the same concept.
Aside: Properties are which? Data, or method? It's also not clear to
me that "def first (self): return self.values[0]" is unlikely to be
used for completely different purposes than getting the head of a
list. I conclude the considerations above are mostly red herrings.
The important thing, I suppose, is that the names of attributes
defined in a class are not mutable. This means that their docstrings
can be kept in a completely separate dict (or other string -> string
mapping), which could even be stored in a separate file. (Emacs Lisp
uses this to good effect. The DOC file for XEmacs is 1.6MB; for GNU
Emacs it's 2.4MB.) Of course it has its problems, but they're pretty
minor.
More information about the Python-Dev
mailing list