[Python-Dev] PEP 443 - Single-dispatch generic functions
PJ Eby
pje at telecommunity.com
Fri May 24 08:28:56 CEST 2013
On Thu, May 23, 2013 at 11:57 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:
> We should be able to use it to help deal with the "every growing
> importer API" problem, too. I know that's technically what pkgutil
> already uses it for, but elevating this from "pkgutil implementation
> detail" to "official stdlib functionality" should make it easier to
> document properly :)
Oh, that reminds me. pprint() is actually an instance of a general
pattern that single dispatch GF's are good for: "visitor pattern"
algorithms. There's a pretty good write-up on the general issues with
doing visitor pattern stuff in Python, and how single-dispatch GF's
can solve that problem, here:
http://peak.telecommunity.com/DevCenter/VisitorRevisited
The code samples use a somewhat different API from the PEP, but it's
pretty close. The main issues solved are eliminating monkeypatching
and fixing the inheritance problems that occur when you use
'visit_foo' methods. One of the samples actually comes from the old
'compiler' package in the stdlib... which tells you how long ago I
did the write-up. ;-)
More information about the Python-Dev
mailing list