Message201119
Documenting it as a callable is a pretty strong hint that it shouldn't be subclassed, but I agree my wording above is wrong. Next attempt (leaving out the mention of leading underscores, since that is covered elsewhere):
=================
Class Names
-----------
Class names should normally use the CapWords convention.
The naming convention for functions may be used instead in cases where the interface is documented and used primarily as a callable.
Note that there is a separate convention for builtin names: most builtin names are single words (or two words run together), with the CapWords convention used only for exception names and builtin constants.
=================
I initially had the following appended to the second paragraph: "... , and instances expose no public mutable attributes or instance methods (but may provide read-only data attributes, alternative constructors and appropriate special methods)".
The longer phrasing was designed to explicitly cover itertools.chain.from_iterable, contextlib.redirect_stdio.target and contextlib.suppress.exceptions, but I don't think that level of detail is necessary. |
|
Date |
User |
Action |
Args |
2013-10-24 12:33:42 | ncoghlan | set | recipients:
+ ncoghlan, barry, paul.moore, pitrou, r.david.murray, ethan.furman |
2013-10-24 12:33:42 | ncoghlan | set | messageid: <1382618022.05.0.14943750784.issue19331@psf.upfronthosting.co.za> |
2013-10-24 12:33:42 | ncoghlan | link | issue19331 messages |
2013-10-24 12:33:41 | ncoghlan | create | |
|